Advertisement
Guest User

Untitled

a guest
Dec 23rd, 2016
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. /*
  2. This file defines the 'strategies' of authenticating users to the app
  3. */
  4.  
  5. var LocalStrategy = require('passport-local').Strategy;
  6. var passport = require('passport');
  7. var User = require('../models/user');
  8.  
  9. // What's passport in this context, name of file, or module name?
  10. // Passport is the object passed to this function (through the initial Passport constructor)
  11. module.exports = function(passport) {
  12.  
  13. // Assign user with 'id' with a session
  14. passport.serializeUser(function(user, done) {
  15. done(null, user.toJSON().id);
  16. });
  17.  
  18. // Release user with 'id' from a session
  19. passport.deserializeUser(function(id, done) {
  20. User.fetch({id: id})
  21. .then(function(user) {
  22. done(null, user.toJSON());
  23. })
  24. .catch(function(err) {
  25. done(err, null);
  26. })
  27. });
  28.  
  29. passport.use('local-signup', new LocalStrategy({
  30. nameField: 'name',
  31. emailField: 'email',
  32. passwordField: 'password',
  33. passReqToCallback: true
  34. }, function(req, name, email, password, done) {
  35. process.nextTick(function() { // What is this 'nextTick' bs?
  36.  
  37. console.log('Trying to sign up...');
  38.  
  39. User.where('email', email)
  40. .fetch()
  41. .then(function(user) {
  42. if (user) {
  43. return done(null, false, req.flash('signupMessage', 'That email is already in use.'));
  44. } else {
  45. var newUser = new User({
  46. name: username,
  47. email: email,
  48. password: User.generateHash(password)
  49. });
  50. newUser.save(null, {method: 'insert'});
  51. console.log('User successfully created!');
  52. }
  53. })
  54. .catch(function(err) {
  55. return done(err);
  56. });
  57.  
  58. });
  59. }));
  60.  
  61. passport.use('local-login', new LocalStrategy({
  62. usernameField: 'email',
  63. passwordField: 'password',
  64. passReqToCallback: true
  65. },
  66. function(req, email, password, done) {
  67. console.log('requested email: ' + email);
  68. new User({'email': email}).fetch()
  69. .then(function(user) {
  70. if (!user) {
  71. console.log('no user found');
  72. return done(null, false, req.flash('loginMessage', 'No user found.'));
  73. }
  74. if (!user.validPassword(password)) {
  75. console.log('incorrect password');
  76. return done(null, false, req.flash('loginMessage', 'Incorrect password.'));
  77. }
  78. console.log('User successfully logged in!');
  79. return done(null, user);
  80. })
  81. .catch(function(err) {
  82. console.log('error with logging in lol');
  83. console.log(err);
  84. return done(err);
  85. });
  86. }));
  87. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement