Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- This file defines the 'strategies' of authenticating users to the app
- */
- var LocalStrategy = require('passport-local').Strategy;
- var passport = require('passport');
- var User = require('../models/user');
- // What's passport in this context, name of file, or module name?
- // Passport is the object passed to this function (through the initial Passport constructor)
- module.exports = function(passport) {
- // Assign user with 'id' with a session
- passport.serializeUser(function(user, done) {
- done(null, user.toJSON().id);
- });
- // Release user with 'id' from a session
- passport.deserializeUser(function(id, done) {
- User.fetch({id: id})
- .then(function(user) {
- done(null, user.toJSON());
- })
- .catch(function(err) {
- done(err, null);
- })
- });
- passport.use('local-signup', new LocalStrategy({
- nameField: 'name',
- emailField: 'email',
- passwordField: 'password',
- passReqToCallback: true
- }, function(req, name, email, password, done) {
- process.nextTick(function() { // What is this 'nextTick' bs?
- console.log('Trying to sign up...');
- User.where('email', email)
- .fetch()
- .then(function(user) {
- if (user) {
- return done(null, false, req.flash('signupMessage', 'That email is already in use.'));
- } else {
- var newUser = new User({
- name: username,
- email: email,
- password: User.generateHash(password)
- });
- newUser.save(null, {method: 'insert'});
- console.log('User successfully created!');
- }
- })
- .catch(function(err) {
- return done(err);
- });
- });
- }));
- passport.use('local-login', new LocalStrategy({
- usernameField: 'email',
- passwordField: 'password',
- passReqToCallback: true
- },
- function(req, email, password, done) {
- console.log('requested email: ' + email);
- new User({'email': email}).fetch()
- .then(function(user) {
- if (!user) {
- console.log('no user found');
- return done(null, false, req.flash('loginMessage', 'No user found.'));
- }
- if (!user.validPassword(password)) {
- console.log('incorrect password');
- return done(null, false, req.flash('loginMessage', 'Incorrect password.'));
- }
- console.log('User successfully logged in!');
- return done(null, user);
- })
- .catch(function(err) {
- console.log('error with logging in lol');
- console.log(err);
- return done(err);
- });
- }));
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement