Facebooklogin消息:“URL阻止:此redirect失败,因为redirectURI未在应用程序的”客户端OAuth设置“中列入白名单。

重要的提醒:

如果您注册testing,请转到您的个人资料设置,并为您的兴趣添加删除configuration文件

试图用Facebooklogin到我的网站 :

我得到以下错误:

url已阻止:此redirect失败,因为redirectURI未在应用的客户端OAuth设置中列入白名单。 确保客户端和Web OAuthlogin处于打开状态,并将所有应用程序域添加为有效的OAuthredirectURI。

我在Facebook的settings (基础)是:

  • 应用域名:openstrategynetwork.com
  • 网站的url: http : //openstrategynetwork.com/

在高级选项卡中, Valid OAuth redirect URIs设置为:

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

应用是public

更多设置(高级)在这里: 在这里输入图像说明

应用程序密钥和秘密是正确的。 我正在使用Meteor和它的帐户包。

您网站上的Facebookbuttonlogin链接到:

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到有效的redirectURI中。

Facebook要求您将redirectURI列入白名单,否则用户可能会使用Facebooklogin您的服务,然后将其访问令牌发送给攻击者的服务器! 你不希望这样的事情发生;]

确保“ 应用程序域 ”和Facebooklogin=>有效的OAuthredirectURI 。 你必须检查www没有www 。 它更好,如果你使用www或没有所有的URL在PHP,HTML,CSS文件和Fb应用程序设置。

另外,如果您使用的是URL的“/”结尾,则必须将该URL添加到有效OAuthredirectURI的应用设置。 例如: – https://www.example.com/index.php/如果这个url,如果你使用的redirecturl,你必须将其设置为应用程序设置。;

希望这将是帮助。

从有效的OAuthredirectURI 中将hauth.done = Facebook更改为hauth_done = Facebook ,为我解决了这个问题。

这对我有效。

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

点击Facebookbutton后,我从浏览器中得到了这个信息,你的浏览器将被redirect到一个与Facebook API集成的链接,所以你会得到这个redirect。 对于我的情况下,链接是从我得到的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/

在这里输入图像说明 在这里输入图像说明

对于我的Node应用程序,

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

把callbackUrl相对

我的OAuthredirectURI如下

在这里输入图像说明

在Facebook身份validationredirectURI的末尾确保“/”

这些设置为我工作。

尝试将http://openstrategynetwork.com/ sigin-facebook添加到客户端OAuth设置有效的redirecturl以及您自己的redirecturl。

login您的网站的助手

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

和Facebook应用程序仪表板(在产品标签下: Facebooklogin

有效的OAuthredirectURI也应该与xyz.com/user_by_facebook /相同

正如前面提到的那样在网上提出请求时

我们有同样的问题,这样的噩梦。

  1. 确保您的应用程序ID和密钥是正确的。 如果您使用单独的开发,分期和生产应用程序进行testing,则App ID和密钥对于每个应用程序都是不同的。 这通常是问题。

  2. 确保你的应用程序configuration文件中有正确的callbackURL(见下文)。 然后将其添加为“ Facebooklogin ”设置下的相同URL,其中显示“ 有效的OAuthredirectURI ”。 它应该是这样的(取决于你的环境):

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

  1. 确保您的应用程序域设置为每个环境的正确域,包括“www”和“no-www”。 Facebook还要求这些域名与您的网站或应用平台的url相匹配。 你将不得不select“ 添加平台 ”来添加这个。

就我而言,我在一个Rails应用程序教程中集成了Facebooklogin。 我已经将http:// localhost:3000 / adsf添加到了我的有效OAuthredirectURI中,但是Rails应用程序将以http://0.0.0.0:3000的forms打开url,因此会尝试redirect到http:://0.0。; 0.0:3000 / asdf 。 将http://0.0.0.0:3000/asdf添加到有效的OAuthredirectURI或导航到http::// localhost:3000 / asdf后 ,按预期工作。