Advertisement
Guest User

Untitled

a guest
Dec 4th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // load all the things we need
  2. var LocalStrategy = require('passport-local').Strategy;
  3.  
  4. // load up the user model
  5. var User = require('../app/models/user');
  6.  
  7. // expose this function to our app using module.exports
  8. module.exports = function(passport) {
  9.  
  10.     passport.serializeUser(function(user, done) {
  11.         done(null, user.id);
  12.     });
  13.  
  14.     passport.deserializeUser(function(id, done) {
  15.         User.findById(id, function(err, user) {
  16.             done(err, user);
  17.         });
  18.     });
  19.  
  20.     passport.use('local-signup', new LocalStrategy({
  21.         // by default, local strategy uses username and password, we will override with email
  22.         first_nameField : 'first_name',
  23.         last_nameField : 'last_name',
  24.         usernameField : 'email',
  25.         passwordField : 'password',
  26.         passReqToCallback : true // allows us to pass back the entire request to the callback
  27.     },
  28.     function(req, first_name, last_name, email, password, done) {
  29.  
  30.         // asynchronous
  31.         // User.findOne wont fire unless data is sent back
  32.         process.nextTick(function() {
  33.  
  34.             // find a user whose email is the same as the forms email
  35.             // we are checking to see if the user trying to login already exists
  36.             User.findOne({ 'local.email' :  email }, function(err, user) {
  37.                 // if there are any errors, return the error
  38.                 if (err) {
  39.                     return done(err);
  40.                 }
  41.  
  42.                 // check to see if theres already a user with that email
  43.                 if (user) {
  44.                     return done(null, false, req.flash('message', 'That email is already taken.'));
  45.                 } else {
  46.  
  47.                     // if there is no user with that email
  48.                     // create the user
  49.                     var newUser = new User();
  50.  
  51.                     // set the user's local credentials
  52.                     newUser.local.first_name = first_name;
  53.                     newUser.local.last_name = last_name;
  54.                     newUser.local.email = email;
  55.                     newUser.local.password = newUser.generateHash(password);
  56.  
  57.                     // save the user
  58.                     newUser.save(function(err) {
  59.                         if (err) {
  60.                             throw err;
  61.                         }
  62.                         return done(null, newUser);
  63.                     });
  64.                 }
  65.  
  66.             });    
  67.  
  68.         });
  69.  
  70.     }));
  71.  
  72. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement