diff options
| author | nanalelfe <nargiza.nosirova@mail.utoronto.ca> | 2016-07-22 02:45:27 +0000 |
|---|---|---|
| committer | nanalelfe <nargiza.nosirova@mail.utoronto.ca> | 2016-07-22 02:45:27 +0000 |
| commit | 12659ff5704a04d2447f5dbf036541676c59f139 (patch) | |
| tree | 68a36260059bb05bb9d589011bf9d8ca22f72b2f /config/passport.js | |
| parent | dc3888553bdda4ee30e6440992459916cec8d911 (diff) | |
| parent | 797b4fe83ed4ebbed47930c7d0d0a34cd37703c6 (diff) | |
Added passport for signup
Diffstat (limited to 'config/passport.js')
| -rw-r--r-- | config/passport.js | 89 |
1 files changed, 84 insertions, 5 deletions
diff --git a/config/passport.js b/config/passport.js index 9131abe..576f088 100644 --- a/config/passport.js +++ b/config/passport.js @@ -2,7 +2,17 @@ * Created by nanalelfe on 2016-07-20. */ var passport = require('passport'); +var dbFile = require("../node_simple.js"); var LocalStrategy = require('passport-local').Strategy; +var bcrypt = require('bcrypt-nodejs'); + +var encryptPassword = function (password) { + return bcrypt.hashSync(password, bcrypt.genSaltSync(5), null); +} + +var comparePassword = function (password) { + return bcrypt.compareSync(password1, password2); +} passport.serializeUser(function (user, done) { done(null, user.id); @@ -12,13 +22,82 @@ passport.deserializeUser(function(id, done) { done(err, user); }); -passport.use('local.signup', new LocalStrategy({ - usernameField: 'username', + +// fields - [email, user_name, f_name, l_name, uni, department, password, phone_num] + +passport.use('local_signup', new LocalStrategy({ + usernameField: 'email', passwordField: 'password', passReqToCallback: true -}, function(req, username, password, done){ +}, function(req, email, password, done){ + req.check('email', 'Invalid email address').notEmpty().isEmail(); + req.check('password', "Password is invalid").notEmpty().isLength({min: 6}).equals(req.body.confirmPassword); + // password has to be at least 4 characters long + + var errors = req.validationErrors(); + console.log("IN PASSPORT"); + if (errors) { + var messages = []; + errors.forEach(function (error) { + messages.push(error.msg); + }); + return done(null, false, req.flash('error', messages)); + } + var hash_pass = encryptPassword(password); + + var fields = [email, req.body.usrname, req.body.fname, req.body.lname, req.body.univ, req.body.dept, hash_pass, + req.body.phone_num]; + + dbFile.add_user(fields, function (success, error, message) { + + if (!success && error) { + console.log("!success && error"); + return done(message); + } + + else if (!success && !error) { + console.log("!success && !error"); + console.log(message); + return done(null, false, {message: message}); + } + + else { + console.log("ELSE"); + return done(null, fields); + } + }); + // Check if username already in use // If not, create new user with given info // Encrypt the passport using bcrypt - return done(null, false, {message: "username already in use"}); -}));
\ No newline at end of file +})); + +/*router.post('/signup', function(req, res, next) { + req.check('email', 'Invalid email address').isEmail(); + req.check('password', "Password is invalid").isLength({min: 4}).equals(req.body.confirmPassword); + // password has to be at least 4 characters long + + var errors = req.validationErrors(); + if (errors) { + req.session.errors = errors; + req.session.success = false; + console.log("got here"); + res.redirect('/signup'); + } else { + req.session.success = true; + console.log("GOT SUCCESS"); + passport.authenticate('local_signup', { + successRedirect: '/user_profile', + failureRedirect: '/signup', + failureFlash: true + }); + } + //res.redirect('/signup'); + + });*/ + +/*router.post('/signup', passport.authenticate('local.signup', { + sucessRedirect: '/profile', + failureRedirect: '/signup', + failureFlash: true + }));*/ |
