gpt4 book ai didi

javascript - 护照 Facebook 身份验证不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 02:25:39 25 4
gpt4 key购买 nike

我有一个nodeJS应用程序(express),它有一个facebook登录。我正在使用 Passport-facebook 身份验证,如此处所述 passport-facebook 。几周前我的登录仍然可以正常工作,但现在有些事情发生了变化。我不确定 Facebook 是否改变了某些东西,或者我是否改变了。我没有接触过任何登录代码,所以我怀疑这是 facebook 的问题。

这是我的身份验证代码:

router.get('/', passport.authenticate('facebook'), function(req, res){
});

router.get('/auth/facebook/callback', passport.authenticate('facebook', {
failureRedirect: '/' }),
function(req, res) {
res.redirect('/calendar');
});

基本上,我希望应用程序自动从应用程序的根目录对用户进行身份验证,然后在身份验证后重定向到/calendar。

症状如下:如果我尝试转到根目录并且之前没有使用 facebook 登录,那么它将带我进入正常的 facebook 登录屏幕,正如它应该的那样。但随后在该屏幕上出现警告:

Given URL is not permitted by the Application configuration One or more of the given URLs is not permitted by the App's settings. It must match the Website URL or Canvas URL, or the domain must be a subdomain of one of the App's domains.

我检查了与此相关的所有问题,似乎是因为我没有在 facebook 应用程序配置中正确配置应用程序域和站点 url。但它们应该都很好:应用程序域:localhost,站点网址:http://localhost:3000/

所以我不知道为什么它会提示它?我没有任何子域。我唯一拥有的路线是:(/、/calendar、/calendar/events)。最后的/calendar/events 路由是 ajax 路由。无论如何,在我输入 Facebook 凭据并登录后,页面会将我重定向到一个空页面,网址为:( https://www.facebook.com/login.php?login_attempt=1 )。我打开开发人员工具,在其控制台中看到一条错误消息:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

但是,现在我实际上已经登录了。因为如果我现在转到 root 或/calendar,它会带我更正页面并显示我已正确登录。显然,登录可以正常工作,但重定向和允许的 URL 存在一些问题。我似乎不知道是什么以及为什么。我使用 mongodDB 作为数据库。

最佳答案

这可能是因为您在应用程序中注册了哪个网站。如果您已经注册到http://localhost:3000/您应该使用域 localhost 来进行回调。如果您已将其注册为 http://127.0.0.1:3000/那么你应该与 127 合作...

关于javascript - 护照 Facebook 身份验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30681342/

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