diff options
Diffstat (limited to 'config')
| -rw-r--r-- | config/auth.js | 7 | ||||
| -rw-r--r-- | config/passport.js | 76 |
2 files changed, 66 insertions, 17 deletions
diff --git a/config/auth.js b/config/auth.js new file mode 100644 index 0000000..c46c55e --- /dev/null +++ b/config/auth.js @@ -0,0 +1,7 @@ +module.exports = { + 'facebookAuth' : { + 'clientID' : '1618318315164670', + 'clientSecret' : 'b4b67801b2b37f795871ce7cc55a33cf', + 'callbackURL' : 'http://localhost:3000/auth/facebook/callback' + } +}
\ No newline at end of file diff --git a/config/passport.js b/config/passport.js index 38e9397..8b3c0ad 100644 --- a/config/passport.js +++ b/config/passport.js @@ -1,8 +1,11 @@ var passport = require('passport'); var dbFile = require("../node_simple.js"); var LocalStrategy = require('passport-local').Strategy; +var FacebookStrategy = require('passport-facebook').Strategy; var bcrypt = require('bcrypt-nodejs'); +var configAuth = require('./auth'); + var exports = module.exports = {}; var encryptPassword = exports.encryptPassword = function (password) { @@ -25,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({ @@ -138,3 +124,59 @@ 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, + passReqToCallback: true + + }, + 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 |
