diff options
| author | nanalelfe <nargiza.nosirova@mail.utoronto.ca> | 2016-07-27 08:59:40 +0000 |
|---|---|---|
| committer | nanalelfe <nargiza.nosirova@mail.utoronto.ca> | 2016-07-27 08:59:40 +0000 |
| commit | b0cbe2db0ee3311fc028e7229749726d4cfe6973 (patch) | |
| tree | 76f04328c7f4026f80b20fe25a1f01a78ddf7c26 /config | |
| parent | ef5d0e0304cea09fdd67745153e617b197667479 (diff) | |
Added third party verification.
Diffstat (limited to 'config')
| -rw-r--r-- | config/passport.js | 70 |
1 files changed, 48 insertions, 22 deletions
diff --git a/config/passport.js b/config/passport.js index be8cf10..8b3c0ad 100644 --- a/config/passport.js +++ b/config/passport.js @@ -28,23 +28,6 @@ passport.deserializeUser(function(user, done) { done(null, user); }); -/* -passport.serializeUser(function (user, done) { - console.log("In serialize User"); - console.log(user); - done(null, user._id); -}); - - -passport.deserializeUser(function(id, done) { - console.log("In de-serialize User"); - dbFile.findUserByID(id, function(err, user){ - done(err, user); - }); -});*/ - - - // fields - [email, user_name, f_name, l_name, uni, department, password, phone_num] passport.use('local_signup', new LocalStrategy({ @@ -142,15 +125,58 @@ passport.use('local_signin', new LocalStrategy({ }); })); + +/** + * verification = { + * username: username + * facebook: { + * id: id, + * token: token, + * name: name, + * email: email + * } + * } + */ + passport.use(new FacebookStrategy({ clientID: configAuth.facebookAuth.clientID, clientSecret: configAuth.facebookAuth.clientSecret, - callbackURL: configAuth.facebookAuth.callbackURL + callbackURL: configAuth.facebookAuth.callbackURL, + passReqToCallback: true + }, - function(accessToken, refreshToken, profile, done) { - User.findOrCreate(..., function(err, user) { - if (err) { return done(err); } - done(null, user); + function(req, accessToken, refreshToken, profile, done) { + console.log("Profile: "); + console.log(profile); + dbFile.userVerifiedBefore(req.user.user_name, function(err, data) { + if (err) { + return done(err); + } else if (data.length) { + if (data[0].facebookID == profile.id) { + var user = req.user; + user.login_info = data[0]; + return done(null, user); + } else { + return done(null, false, {message: "The verification account doesn't match."}); + } + } else { + var verification = { + username : req.user.user_name, + facebookID : profile.id, + facebookToken : accessToken + + } + console.log(verification); + dbFile.addVerification(verification, function (err) { + if (err) { + return done(err); + } else { + var user = req.user; + user.login_info = verification; + return done(null, user); + } + }); + } }); } ));
\ No newline at end of file |
