aboutsummaryrefslogtreecommitdiff
path: root/config/passport.js
diff options
context:
space:
mode:
Diffstat (limited to 'config/passport.js')
-rw-r--r--config/passport.js76
1 files changed, 59 insertions, 17 deletions
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