在我的应用程序中,我正在尝试使用facebook帐户添加loggin。由于我正在使用当地策略的护照,我试图添加Facebook策略。我在facebook开发者网站上注册了我的令牌和秘密。我只是从官方护照github复制/粘贴源代码部分,以适应我的个人用途。 调用
时会出现问题passport.authenticate('facebook');
我被困在这里,没有重定向到facebook登录页面。我的应用程序正在等待响应或等待重定向,但没有任何反应。我试图在facebook开发者页面上提供我的回调URL,我尝试了没有它(传递回调抛出护照策略)。
我错过了什么?
我的申请:
app.get('/auth/facebook', user_routes.facebookLogin);
app.get('/auth/facebook/callback', user_routes.facebookCallback);
我的路线:
exports.facebookLogin = function(req, res, next) {
console.log('Try to login with facebook');
passport.authenticate('facebook'); //<---------------- does not go further than here
};
exports.facebookCallback = function(req, res, next){
passport.authenticate('facebook', {
successRedirect: '/home',
failureRedirect: '/login' });
};
我的策略:
passport.use(new FacebookStrategy({
clientID: "xxxxxxxx",
clientSecret: "xxxxxxxxxxx",
callbackURL: "http://localhost:8080/auth/facebook/callback"
},
function(accessToken, refreshToken, profile, done) {
User.findOne({ username: profile.displayName, email: profile.emails[0].value }, function(err, olduser) {
if (err) { return done(err); }
if (olduser) {
return done(null, olduser);
}
else{
var newuser = new User({
username: profile.displayName,
email: profile.emails[0].value
}).save(function(err,newuser){
if(err) console.log(err);
done(null,newuser);
});
}
});
})
);
[编辑]
将回调的路由更改为此解决了我的问题。但是,我不明白为什么......
app.get('/auth/facebook/callback',
passport.authenticate('facebook', { failureRedirect: '/login' }),
function(req, res) {
res.redirect('/home');
});
答案 0 :(得分:0)