Advertisement
Guest User

Untitled

a guest
Jul 30th, 2016
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. app.get('/', function(req, res) {
  2. if(req.user) {res.render('user'), {name:req.user.username, id:req.user.id}}
  3.  
  4. else
  5.  
  6. if(!req.user) {res.render('index')};
  7.  
  8. });
  9.  
  10. passport.serializeUser(function(user, done) {
  11. done(null, user.id);
  12. });
  13.  
  14.  
  15. passport.deserializeUser(function(id, done) {
  16. connection.query("SELECT * FROM users WHERE id = ? ",[id], function(err, rows){
  17. done(err, rows[0]);
  18. });
  19. });
  20.  
  21.  
  22. passport.use(
  23. 'local-signup',
  24. new LocalStrategy({
  25.  
  26. usernameField : 'username',
  27. passwordField : 'password',
  28. passReqToCallback : true
  29. },
  30. function(req, username, password, done) {
  31. // find a user whose email is the same as the forms email
  32. // we are checking to see if the user trying to login already exists
  33. connection.query("SELECT * FROM users WHERE username = ?",[username], function(err, rows) {
  34. if (err)
  35. return done(err);
  36. if (rows.length) {
  37. return done(null, false, {message: 'That username is already taken'});
  38.  
  39. } else {
  40.  
  41. var newUserMysql = {
  42. username: username,
  43. password: bcrypt.hashSync(password, null, null) // use the generateHash function in our user model
  44. };
  45.  
  46. var insertQuery = "INSERT INTO users ( username, password ) values (?,?)";
  47.  
  48. connection.query(insertQuery,[newUserMysql.username, newUserMysql.password],function(err, rows) {
  49. newUserMysql.id = rows.insertId;
  50.  
  51. return done(null, newUserMysql);
  52. });
  53. }
  54. });
  55. })
  56. );
  57.  
  58.  
  59.  
  60. passport.use(
  61. 'local-login',
  62. new LocalStrategy({
  63. // by default, local strategy uses username and password, we will override with email
  64. usernameField : 'username',
  65. passwordField : 'password',
  66. passReqToCallback : true // allows us to pass back the entire request to the callback
  67. },
  68. function(req, username, password, done) {
  69. connection.query("SELECT * FROM users WHERE username = ?",[username], function(err, rows){
  70. if (err)
  71. return done(err);
  72. if (!rows.length) {
  73. return done(null, false, {message: 'No user found'});
  74. }
  75.  
  76. // if the user is found but the password is wrong
  77. if (!bcrypt.compareSync(password, rows[0].password))
  78. return done(null, false, {message: 'Ops, wrong password'});
  79.  
  80.  
  81. return done(null, rows[0]);
  82. });
  83. })
  84. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement