passport.js facebook身份验证未能正常工作
问题描述:
我试图实施的passport.js策略是针对Facebook提供商的策略。我已经测试了教科书示例(从https://github.com/passport/express-4.x-facebook-example),似乎重定向从不被调用。passport.js facebook身份验证未能正常工作
重定向序列可以正常工作,除非用户已经登录,它会重定向到主页,即使明确地在回调中放入不同的URL。
因此,除了最后一次重定向之外,一切都可以正常工作,最终应该会发生在https://xx.com/testing之间,这绝不会发生。
6的NodeJS,表达4+,护照3.2
到底哪里出问题了?
战略
passport.use(new FacebookStrategy({
clientID: xx,
clientSecret: 'xx',
callbackURL: 'https://xx.com/auth/facebook/callback/',
profileFields: ['id', 'email', 'name', 'displayName']
},
function (accessToken, refreshToken, profile, done) {
return done(null, profile)
}
))
路线
router.get('/auth/facebook', passport.authenticate('facebook', {scope: ['public_profile', 'email']}))
router.get('/auth/facebook/callback',
passport.authenticate('facebook', { failureRedirect: '/login' }),
function(req, res) {
// never gets called
console.log('I don't get called!!!')
res.redirect('/testing')
})
答
/testing
去successRedirect
passport.authenticate('facebook', {
successRedirect: '/testing',
failureRedirect: '/login'
}));
UPDATE:使用passport.authorize
router.get('/auth/facebook/callback',
passport.authorize('facebook', { failureRedirect: '/login' }),
function(req, res) {
res.redirect('/testing')
});
按预期工作,但我想执行一些代码,然后重定向。 – Astuanax