Advertisement
Guest User

Untitled

a guest
Aug 16th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.83 KB | None | 0 0
  1.  
  2. //loading node modules to script server side
  3. var express = require('express');
  4. var http = require('http');
  5. var mysql = require('mysql');
  6. var flash = require("connect-flash");
  7. var session = require('client-sessions');
  8. var passport = require('passport');
  9. var LocalStrategy = require('passport-local').Strategy;
  10. var fs = require('fs');
  11. var app = express();
  12. var path = require('path');
  13. var bodyParser = require('body-parser');
  14. var bcrypt = require('bcryptjs');
  15. var cookieParser = require('cookie-parser');
  16. var session = require('express-session');
  17. var home = path.dirname(__dirname);
  18.  
  19.  
  20.  
  21.  
  22. // Application Middleware
  23. app.use(express.static(home));
  24. app.use(bodyParser.urlencoded({ extended: true }));
  25. app.use(flash());
  26. app.use(passport.initialize());
  27. app.use(session({secret: "Shh, its a secret!"}));
  28. app.use(passport.session());
  29.  
  30.  
  31.  
  32.  
  33.  
  34. // creating mysql connection
  35. var connection = mysql.createConnection({
  36. host : 'localhost',
  37. user : 'root',
  38. password : 'Timilehin@99',
  39. database : 'sakila',
  40. port : 3306
  41. });
  42.  
  43.  
  44. // http request with express' module for serving static files
  45.  
  46. connection.connect(function(err) {
  47. if (err) {
  48. console.error('error connecting: ' + err.stack);
  49. return;
  50. }
  51.  
  52. console.log('connected as id ' + connection.threadId);
  53.  
  54. });
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62. // used to serialize the user for the session
  63. passport.serializeUser(function(user, done) {
  64. done(null, user.user_id);
  65. });
  66.  
  67. // used to deserialize the user
  68. passport.deserializeUser(function(id, done) {
  69. connection.query("select * from users where user_id = "+id,function(err,rows){
  70. done(err, rows[0]);
  71. });
  72. });
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80. /**
  81. HTTP request to handle submission of the registeration details
  82. **/
  83.  
  84. app.post('/submit', function(req, response){
  85.  
  86. var user = {username: req.body.username, password: req.body.password, email_address: req.body.email};
  87. //insert into the mysql database
  88. connection.query('INSERT INTO users SET ?', user, function(error, res){
  89. if (error){
  90. console.log('An error has occured! ' + error.stack);
  91. }
  92. else {
  93. req.session.user = true;
  94. response.sendFile(home + '/dashboard.html', function(err){
  95. if (err){
  96. console.log('The file could not be sent');
  97. }
  98. else {
  99. console.log('The file was sent');
  100. }
  101. })
  102. }
  103. })
  104. });
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116. //configuration of passport module to validate username and password
  117.  
  118. passport.use(new LocalStrategy({
  119. usernameField : 'username',
  120. passwordField : 'password'
  121. },
  122. function(username, password, done) { // callback with username and password from our form
  123. connection.query("SELECT * FROM users WHERE username = '" + username + "' ", function(err,rows){
  124. if (err){
  125. return done(err);
  126. }
  127.  
  128. if (!rows.length) {
  129. return done(null, false); //
  130. }
  131.  
  132. // if the user is found but the password is wrong
  133. if (!(password === rows[0].password)) {
  134. return done(null, false);
  135. }
  136. // all is well, return successful user
  137. return done(null, rows[0]);
  138.  
  139. });
  140.  
  141. }));
  142.  
  143.  
  144.  
  145.  
  146.  
  147. /**
  148. route for validating username and password
  149. **/
  150.  
  151.  
  152. app.post('/login',
  153. passport.authenticate('local', { successRedirect: '/dashboard.html',
  154. failureRedirect: '/login.html',
  155. failureFlash: true }),
  156. function(req, res) {
  157. req.session.user = true;
  158. }
  159. );
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167. function requireLogin (req, res, next) {
  168. if (!req.session.user) {
  169. res.redirect('/login');
  170. } else {
  171. next();
  172. }
  173. };
  174.  
  175.  
  176.  
  177.  
  178.  
  179. /***
  180. route authentications
  181. ***/
  182.  
  183. app.get('/dashboard', requireLogin, function (req, res) {
  184. res.sendFile(home + '/dashboard.html', function(err){
  185. if (err) console.log(err.stack);
  186. else console.log('File sent!');
  187. });
  188. });
  189.  
  190.  
  191. app.get('/', function (req, res) {
  192. if (!req.session.user) {
  193. res.sendFile (home + '/index.html', function(err){
  194. if (err) console.log(err.stack);
  195. else console.log('File sent!');
  196. });
  197. }
  198. else {
  199. res.sendFile(home + '/dashboard.html', function(err){
  200. if (err) console.log(err.stack);
  201. else console.log('File sent!');
  202. });
  203. }
  204.  
  205. });
  206.  
  207.  
  208. app.get('/login', function(req, res){
  209. res.sendFile(home + '/login.html');
  210. });
  211.  
  212. app.get('/signup', function(req, res){
  213. res.sendFile(home + '/signup.html');
  214. });
  215.  
  216. app.get('/recover_password', function(req, res){
  217. res.sendFile(home + '/recover_password.html');
  218. });
  219.  
  220.  
  221. // listen for requests
  222.  
  223. app.listen(8000, function(){
  224. console.log("xxxxge is running at localhost:8000");
  225. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement