aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authornanalelfe <nargiza.nosirova@mail.utoronto.ca>2016-07-22 02:45:27 +0000
committernanalelfe <nargiza.nosirova@mail.utoronto.ca>2016-07-22 02:45:27 +0000
commit12659ff5704a04d2447f5dbf036541676c59f139 (patch)
tree68a36260059bb05bb9d589011bf9d8ca22f72b2f /config
parentdc3888553bdda4ee30e6440992459916cec8d911 (diff)
parent797b4fe83ed4ebbed47930c7d0d0a34cd37703c6 (diff)
Added passport for signup
Diffstat (limited to 'config')
-rw-r--r--config/passport.js89
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
+ }));*/