【发布时间】:2018-12-03 10:27:30
【问题描述】:
我正在制作一个使用 Facebook 登录的简单应用程序。它在本地主机中运行良好。然而,在部署到 Heroku 之后,登录按钮只是刷新页面,浏览器停留在 https://voting-app-28.herokuapp.com/auth/facebook 上,没有重定向。我已经尝试了所有方法,并将 URL 添加到 facebook 上的有效 OAuth 重定向 URI 中。控制台中没有错误。
我的护照.js
passport.serializeUser((user, done) => {
done(null, user.id);
});
passport.deserializeUser((id, done) => {
User.findById(id).then(user => done(null, user));
});
passport.use(
new FacebookStrategy(
{
clientID: keys.facebookClientID,
clientSecret: keys.facebookClientSecret,
callbackURL: '/auth/facebook/callback',
profileFields: ['id', 'name'],
proxy: true
},
(accessToken, refreshToken, profile, done) => {
User.findOne({ facebookId: profile.id }).then(user => {
if (user) {
return done(null, user);
} else {
new User({ facebookId: profile.id })
.save()
.then(user => done(null, user));
}
});
}
)
);
我的 authRoutes.js
app.get('/auth/facebook', passport.authenticate('facebook'));
app.get(
'/auth/facebook/callback',
passport.authenticate('facebook'),
(req, res) => {
res.redirect('/');
}
);
这是我的Github repo 和Heroku app,所以你可以明白我的意思。
请帮忙,谢谢!!
【问题讨论】:
标签: node.js reactjs authentication passport.js passport-facebook