我尝试在 Nodejs 中构建 Passport Oauth 登录策略,但似乎从 2023 年起它就不起作用了。单击触发标准服务器 API(如
/auth/facebook/
)的登录按钮并将 Passport 设置为中间件时,它甚至不起作用启动 FB 登录弹出窗口,或任何用于此目的的窗口。
passport.use(new FacebookStrategy({
clientID: '**********',
clientSecret: '************',
callbackURL: "http://localhost:3000/auth/facebook/cb"
},
function(accessToken, refreshToken, profile, cb) {
console.log(profile)
return cb(null, profile);
}
));
app.get('/auth/facebook', passport.authenticate('facebook', { display: 'popup' });
app.get('/auth/facebook/cb', passport.authenticate('facebook'), (req, res, next) => {
res.send(res.user)
});
我已经尝试了所有组合,但没有任何反应。甚至手动触发 FB 登录页面 [如开发者元数据所述,在这种情况下,我得到了 FB 登录屏幕(但标准登录,没有确认发送数据的选项),并且我设法将数据接收到回调 API,但随后应用程序挂起。任何帮助将不胜感激,谢谢!
如果您已正确配置自动重定向 uri 并且您的应用程序已上线,请确保使用 nodeJs 的 cors 模块不会出现 cors 问题:https://www.npmjs.com/package/cors 注意:facebook o auth 无法在本地主机上运行,请尝试将您的后端和前端托管在免费托管网站上,然后重试。