当我打电话passport.authenticate('facebook');
时,页面继续加载并因超时而失败。facebook 身份验证屏幕永远不会出现。关于我在哪里犯错的任何线索?
以下是我的代码片段。
var User = require('../models/user.js'),
passport = require('passport'),
FacebookStrategy = require('passport-facebook').Strategy;
passport.use(new FacebookStrategy({
clientID: 'appId-XXX',
clientSecret: 'appSecret-xxx',
callbackURL: 'https://xxx/auth/facebook/callback'
},
function(accessToken, refreshToken, profile, done) {
process.nextTick(function() {
var authID = 'facebook' + profile.id;
User.findOne({
authId: authID
}, function(err, user) {
if (err) return done(err, null);
if (user) return done(null, user);
user = new User({
authID: authID,
name: profile.displayName,
created: Date.now(),
role: 'customer'
});
user.save(function(err) {
if (err) return done(err, null);
done(null, user);
});
});
});
}));
app.use(passport.initialize());
app.use(passport.session());
app.get('/auth/facebook', function(req, res, next) {
console.log('Calling Facebook Authenticate');
passport.authenticate('facebook');
});
app.get('/auth/facebok/callback', passport.authenticate('facebook', {
successRedirect: options.successRedirect,
failureRedirect: options.failureRedirect
}));