gpt4 book ai didi

node.js - Passport-Facebook 在本地主机中工作,但在 Heroku 中不起作用(MERN Stack)

转载 作者:太空宇宙 更新时间:2023-11-03 22:59:51 25 4
gpt4 key购买 nike

我正在制作一个使用 Facebook 登录的简单应用程序。它在本地主机中工作得很好。但是,部署到 Heroku 后,登录按钮只会刷新页面,浏览器会停留在 https://voting-app-28.herokuapp.com/auth/facebook 上,而不进行重定向。我已经尝试了所有方法,并将 URL 添加到 facebook 上的有效 OAuth 重定向 URI。控制台中没有错误。

我的 Passport .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 repoHeroku app这样你就明白我的意思了。

请帮忙,谢谢!!

最佳答案

我也遇到了同样的问题。经过多次 Google 搜索,我发现 Facebook 只允许来自 HTTPS 的请求。尽管我的 Heroku 域是 HTTPS,但它没有 ssl 证书。我升级到了业余爱好测功机,并在 Heroku 的设置中应用了 ssl 证书,现在它可以工作了。

关于node.js - Passport-Facebook 在本地主机中工作,但在 Heroku 中不起作用(MERN Stack),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51013420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com