Facebook登录消息:“ URL被阻止:此重定向失败,因为该重定向URI未在应用程序的客户端OAuth设置中列入白名单。”


121

重要通知:

如果您注册测试,请转到个人资料设置,然后根据自己的兴趣添加删除个人资料

尝试使用Facebook登录到我的网站

我收到以下错误:

URL阻止:此重定向失败,因为在应用程序的客户端OAuth设置中未将重定向URI列入白名单。确保客户端和Web OAuth登录已打开,并将所有应用程序域添加为有效OAuth重定向URI。

settings在Facebook上的(基本知识)是:

在高级标签中,Valid OAuth redirect URIs设置为:

http://openstrategynetwork.com/_oauth/facebook?close

应用程式为public

此处有更多设置(高级): 在此处输入图片说明

应用密钥和机密正确。我正在使用流星及其帐户套餐。


您的ROOT_URL是什么?
2013年

您使用什么URL重定向到Facebook登录页面?您仍然需要在授权请求中指定redirect_uri。
爱德华·姜

@aedm:ROOT_URL设置为http://openstrategynetwork.com
Amir Rahbaran

@EdwardJiang:在哪里可以做到?很奇怪,因为它曾经为localhost工作。但是,即使本地主机也无法正常工作。
阿米尔·拉巴兰

我正好遇到这个问题也REDIRECT_URI比赛在客户端的OAuth设置的配置-看到更多关于developers.facebook.com/support/bugs/232085950706415事先需要帮助的人..谢谢
jdme

Answers:


80

您网站上的使用Facebook登录按钮链接到:

https://www.facebook.com/v2.2/dialog/oauth?client_id=1500708243571026&redirect_uri=http://openstrategynetwork.com/_oauth/facebook&display=popup&scope=email&state=eyJsb2dpblN0eWxlIjoicG9wdXAiLCJjcmVkZW50aWFsVG9rZW4iOiIwSXhEU05XamJjU0VaQWdqcmF6SXdOUWRuRFozXzc0X19lbVhGWUJTZGNYIiwiaXNDb3Jkb3ZhIjpmYWxzZX0=

注意: redirect_uri=http://openstrategynetwork.com/_oauth/facebook

如果您改为将链接更改为:

redirect_uri=http://openstrategynetwork.com/_oauth/facebook?close

它应该工作。或者,您可以将Facebook链接更改为http://openstrategynetwork.com/_oauth/facebook

您还可以添加http://localhost/_oauth/facebook到有效的重定向URI。

Facebook要求您将重定向URI列入白名单,因为否则人们可以使用Facebook登录以获取您的服务,然后将其访问令牌发送到攻击者的服务器!而且您不希望这种情况发生;]


4
OAuth重定向URI到底是什么?我希望这是与根Web应用程序相同的URL。
AlvinfromDiaspar '16

1
这似乎有效。尽管我不确定最初是否不是我尝试使用创建应用程序的帐户登录的原因。实施了该解决方案,并使用了一个不同的帐户,并且工作了(貌似)。oAuth重定向URI的语言和信息需要清楚。该信息是深奥的,几乎是神秘的。甚至没有定义或澄清使用的术语。
abtecas

非常感谢,解决了我的问题!即使我开始工作ssl
Sweet Chilly Philly

诀窍是查看重定向网址,并将其添加到“ Valid OAuth Redirect URIs”(在我的情况下,这就是signin-facebook)。
Usama Saleem

1.确保在您的“ 有效
Bhavin Rana

79

正如发问者所写

在高级标签中,有效的OAuth重定向URI设置为:...

并且我遇到了同样的问题(将重定向网址写入错误的输入字段),我想强调一下

不是

Settings -> Advanced -> Share Redirect Whitelist

Facebook Login -> Settings -> Valid OAuth redirect URIs

它将为我节省2个小时的反复试验。

您还应该记住 www.example.com与的含义不同example.com。将两种格式都添加到重定向URL。


11
不赞成投票的人:请添加关于您所关注问题的评论,否则答案将不会更好。
andymel '17

6
耶稣,我花了很多时间在错误的地方看,谢谢。
瑞克斯

尝试添加新的URI,我得到:New HTTP Redirect URIs are not allowed:(
XCS

非常感谢。我尝试了所有内容,但是在错误的地方。“共享重定向白名单”是什么意思?
Sunil Kumar,

19

这对我有用。

redierct_url = http://127.0.0.1:8080/accounts/facebook/login/callback/

在单击Facebook按钮后,我从浏览器中获得了该信息,您的浏览器将被重定向到与Facebook API集成的链接,因此您将在哪里获得该重定向。对于我来说,链接是从我获得redirect_url的地方开始的。

https://www.facebook.com/dialog/oauth?client_id=...&scope=&response_type=code&state=...&redirect_uri=http://127.0.0.1:8080/accounts/facebook/login/callback/

在此处输入图片说明 在此处输入图片说明


对于我的MVC应用程序,我必须在站点URL中添加“ / signin-facebook”。
davaus

您可以节省我的时间@Umar Asghar
kn3l

11

确保“ 应用程序域 ”和Facebook登录=>有效的OAuth重定向URI。您必须在那里检查www检查www。如果与www一起使用,或者不为php,html,css文件和Fb应用程序设置中的所有URL使用,则更好。

另一件事是,如果您在网址的末尾使用“ /”,则必须将该网址添加到有效OAuth重定向URI的应用设置中。范例:-https : //www.example.com/index.php/ //www.example.com/index.php/如果在重定向URL中使用此URL,则必须将其设置为应用程序设置。

希望这会有所帮助。


在应用程序域中,您同时添加和不添加www
qwertzman

您对这个职位朋友的意思是什么,我有点困惑。
TheBAST

6

对于我的Node Application,

"facebook": {
        "clientID" : "##############",
        "clientSecret": "####################",
        "callbackURL": "/auth/facebook/callback/"
    }

放置相对回调网址

我的OAuth重定向URI如下

在此处输入图片说明

Facebook身份验证重定向URI的末尾确保 “ /”

这些设置对我有用。


6

就我而言,我只需要确保我的应用程序域重定向URL都有带和不带wwwURL

在此处输入图片说明

就我而言,我必须使用:signin-facebook在我的网站网址之后,用于重定向网址。


是否真的需要App Domains?当我在本地测试时,它无需设置App Domains就可以正常工作
Darius.V

您是否使用oAuth和重定向?
Hooman Bahreini,


3

从更改hauth.done = Facebook的hauth_done =的Facebook在有效的OAuth重定向的URI固定对我来说。


1

好的首先,这是一个非常明确的错误消息。只需看看许多开发人员就错过了这个,包括我的自我。请看这里的屏幕截图。

在此处输入图片说明

在产品下> Facebook登录>设置

或仅在此处转到此网址(将YOUR_APP_ID替换为您的应用ID,笑声):

https://developers.facebook.com/apps/YOUR_APP_ID/fb-login/settings/

如果您正在做,localhost:3000请确保您有https://localhost:3000/auth/facebook/callback

当然,您不必保持活动状态(右上角为绿色开关),但就我而言,我现在正在部署到heroku,并将很快替换localhost:3000https://myapp.herokuapp.com/auth/facebook/callback

当然,我将在“设置” /“基本”和“设置” /“高级”中更新URL,并在“基本”部分中添加隐私策略URL。

我假设您使用的是devise ,并且已经gem 'omniauth-facebook', '~> 4.0'安装了正确的facebook gem和gem 'omniauth', '~> 1.6',并且您的用户表中具有必要的列(例如uid,image和provider),则您已经正确配置了initializers / devise.rb 。而已。


1

它可能会帮助别人。

我有类似的错误消息,但仅在开发和登台环境中,而不在生产环境中。为dev和登台子域以及生产正确设置了有效的重定向URI。

原来,我忘记了对于那些环境,我们使用测试FB应用程序,它是FB开发人员页面中的单独应用程序。必须选择它并更新其设置。



0

您网站的登录助手

$ loginUrl = $ helper-> getLoginUrl('xyz.com/user_by_facebook/',$ permissions);

和在Facebook应用程序信息中心中(在“产品”标签下:Facebook登录)

有效的OAuth重定向URI也应与xyz.com/user_by_facebook/

如前所述,同时从网络发出请求


0

我们遇到了同样的问题,一场噩梦。

  1. 确保您的应用程序ID和秘密密钥正确。如果您使用单独的开发,登台和生产应用程序进行测试,则每个应用程序的应用程序ID和秘密密钥都不同。这通常是问题所在。

  2. 确保在应用配置文件中正确设置了回调URL(请参见下文)。然后在“ Facebook登录 ”设置下将其添加为相同的URL ,并显示“ 有效的OAuth重定向URI ”。它应该看起来像这样(取决于您的环境):

http://localhost/auth/facebook/callback http://staging.example.com/auth/facebook/callback http://example.com/auth/facebook/callback

  1. 确保针对每种环境将您的应用程序域设置为正确的域,包括“ www”和“ no-www”。Facebook还要求这些域与您的网站或应用程序平台的URL相匹配。您必须选择“ Add Platform ”来添加它。

我无法要求将重定向URI与网站的URL匹配,因为我的重定向URI或在其他服务器上定义的重定向URL和我的网站是从其他服务器提供服务的,我该怎么办?
贾瓦德


0

就我而言,在FB上定义的URI很好,但是我使用的是Spring Security,它向我的URI 添加; jsessionid = 0B9A5E71DAA32A01A3CD351E6CA1FCDD,因此导致不匹配。

https://m.facebook.com/v2.5/dialog/oauth?client_id=your-fb-id-code&response_type=code&redirect_uri=https://localizator.org/auth/facebook;jsessionid=0B9A5E71DAA32A01A3CD351E6CA1FCDD&scope=email&state=b180578a-007b-48bc-bd81-4b08c6989e18

为了避免URL重写,我以这种方式在Spring Security配置中添加了disable-url-rewriting =“ true”

<http auto-config="true" access-denied-page="/security/accessDenied" use-expressions="true"
      disable-url-rewriting="true" entry-point-ref="authenticationEntryPoint"/> 

它解决了我的问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.