facebook auth strategy
This commit is contained in:
2
app.js
2
app.js
@@ -7,7 +7,7 @@ var express = require('express'),
|
|||||||
passport = require('passport');
|
passport = require('passport');
|
||||||
|
|
||||||
// Configuration (API Keys, Database URI)
|
// Configuration (API Keys, Database URI)
|
||||||
var config = require('./config.json');
|
var config = require('./config/config.json');
|
||||||
var passportConf = require('./config/passport');
|
var passportConf = require('./config/passport');
|
||||||
|
|
||||||
// Load controllers
|
// Load controllers
|
||||||
|
@@ -1,6 +1,9 @@
|
|||||||
var passport = require('passport'),
|
var passport = require('passport'),
|
||||||
LocalStrategy = require('passport-local').Strategy,
|
LocalStrategy = require('passport-local').Strategy,
|
||||||
User = require('../models/User');
|
FacebookStrategy = require('passport-facebook').Strategy,
|
||||||
|
User = require('../models/User'),
|
||||||
|
config = require('.config.json');
|
||||||
|
|
||||||
|
|
||||||
passport.serializeUser(function(user, done) {
|
passport.serializeUser(function(user, done) {
|
||||||
done(null, user.id);
|
done(null, user.id);
|
||||||
@@ -12,7 +15,10 @@ passport.deserializeUser(function(id, done) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
passport.use(new LocalStrategy({ usernameField: 'email' },function(email, password, done) {
|
passport.use(new LocalStrategy({
|
||||||
|
usernameField: 'email'
|
||||||
|
},
|
||||||
|
function(email, password, done) {
|
||||||
User.findOne({ email: email }, function(err, user) {
|
User.findOne({ email: email }, function(err, user) {
|
||||||
if (err) { return done(err); }
|
if (err) { return done(err); }
|
||||||
if (!user) { return done(null, false, { message: 'Unknown user ' + email }); }
|
if (!user) { return done(null, false, { message: 'Unknown user ' + email }); }
|
||||||
@@ -27,6 +33,16 @@ passport.use(new LocalStrategy({ usernameField: 'email' },function(email, passwo
|
|||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
passport.use(new FacebookStrategy({
|
||||||
|
clientID: config.facebook.clientId,
|
||||||
|
clientSecret: config.facebook.clientSecret,
|
||||||
|
callbackURL: config.facebook.callbackUrl || "http://localhost:8000/auth/facebook/callback"
|
||||||
|
},
|
||||||
|
function (accessToken, refreshToken, profile, done) {
|
||||||
|
var user = module.exports.findOrCreateOauthUser(profile.provider, profile.id);
|
||||||
|
done(null, user);
|
||||||
|
}));
|
||||||
|
|
||||||
// Simple route middleware to ensure user is authenticated. Otherwise send to login page.
|
// Simple route middleware to ensure user is authenticated. Otherwise send to login page.
|
||||||
exports.ensureAuthenticated = function ensureAuthenticated(req, res, next) {
|
exports.ensureAuthenticated = function ensureAuthenticated(req, res, next) {
|
||||||
if (req.isAuthenticated()) { return next(); }
|
if (req.isAuthenticated()) { return next(); }
|
||||||
|
Reference in New Issue
Block a user