我正在尝试使用passport-facebook登录我的应用程序。当用户实际登录时,我在重定向时遇到了一些麻烦。基本上问题是,在进入/ auth / facebook并重定向到facebook登录(并输入凭据,然后点击登录按钮)后,页面将永远加载,而不是重定向。我做错了什么?
这是我的app.js:
import express from 'express';
import bodyParser from 'body-parser';
import session from 'express-session';
import passport from 'passport';
import FacebookStrategy from 'passport-facebook';
const app = express();
var fbOpts = {
clientID: ****,
clientSecret: ****,
callbackURL: '/auth/facebook/callback',
profileFields: ['id', 'displayName', 'photos', 'email']
}
var fbCallback = (accessToken, refreshToken, profile, cb) => {
console.log(accessToken, refreshToken, profile, cb);
//save to database
}
app.use(bodyParser.json());
app.use(session({
secret:'foobar',
resave:true,
saveUnitialized:true
}))
passport.use(new FacebookStrategy(fbOpts,fbCallback))
app.get("/",(req,res)=>{
res.send("<a href='/auth/facebook'>Login with Facebook</a>")
});
app.get("/auth/facebook",passport.authenticate('facebook'));
app.get('/auth/facebook/callback',
passport.authenticate('facebook', {
successRedirect : '/profile',
failureRedirect : '/'
})
);
app.get("/profile",(req,res)=>res.send("profile page"))
app.listen(3000);
有人能告诉我我错过了什么或重定向到我的网站有什么问题吗?
另外,我可以告诉登录正常工作,因为如果我查看终端的控制台,我可以看到我的Facebook用户信息,例如个人资料图片,姓名,身份证等。
答案 0 :(得分:0)
你现在可能已经解决了这个问题。但只是为了其他任何人试图解决这个问题。您应该注意许多参考点。我试图改变https://developers.facebook.com/apps上的重定向内容多年,但没有任何效果。保持消息URL被阻止。白名单等等。
问题实际上已经解决了,因为在我的ids文件中,我存储了我的ID,我设置了callbackURL:&#39; http:// 127.0.0.1 :3000 / auth / Facebook的/回调&#39;而不是callbackURL: localhost :3000。
愚蠢的错误,但只是想我会分享让你知道继续检查所有可能的参考点。