Facebook OAuth "这个URL的域名不包括在应用程序's域名"

让我首先说,我已经寻找这个问题的答案很长一段时间了……

我试图设置Facebook OAuth与我的应用程序,这是在我的机器上本地开发。Facebook授权的一切都很完美,直到我从使用localhost转移到另一个域名(仍然是我机器的本地域名)。现在我得到如下错误。

不能加载URL:这个URL的域不包括在应用程序的 域。要加载此URL,请添加所有域和子域 在你的应用程序设置的应用程序域字段。

我的hosts文件包含127.0.0.1 domain.dev(工作完美)

我的重定向在我的应用程序(使用Socialite)是http://domain.dev/auth/facebook/callback

在我的Facebook应用程序设置…

  • 我的应用程序域是domain.dev
  • 我的网站URL是http://domain.dev/
  • my Valid OAuth重定向uri is 李http://domain.dev/auth/facebook/callback < / >

出现错误消息时的URL是..

< a href = " https://www.facebook.com/v2.5/dialog/oauth?client_id=XXXXXXXXXXXXXXX& redirect_uri = http % 3 a % 2 f % 2 fdomain.dev % 2 fauth % 2 ffacebook % 2 fcallback&范围= email& response_type = code&国家= 0 ztckhmwwfltj72twe8uoktcf65jmeptg95mzldd”rel = " noreferrer " > https://www.facebook.com/v2.5/dialog/oauth?client_id=XXXXXXXXXXXXXXX& redirect_uri 3 = http % % 2 f % 2 fdomain.dev % 2 fauth % 2 ffacebook % 2 fcallback&范围= email& response_type = code&状态= 0 ztckhmwwfltj72twe8uoktcf65jmeptg95mzldd < / >

我不知道问题出在哪里。

屏幕截图1
截图 < / p >

屏幕截图 enter image description here < / p >

427980 次浏览

如果你在Facebook中创建应用时输入了错误的详细信息,通常会发生这种情况。或者你改变了一个现有应用程序的URL ?

你能在这个页面重新检查一下你的APP的设置吗?

https://developers.facebook.com/apps < a href = " https://developers.facebook.com/apps " > < / >

  1. 选择正确的App,点击编辑按钮;

  2. 检查url &路径被正确输入,并指向你已经安装终极Facebook插件的网站。

我也遇到了同样的问题,它来自一个错误的client_id / Facebook应用程序ID。

你把脸书的应用程序调成“公开”还是“在线”了?当你这样做时,Facebook会创建一个带有新应用ID的新应用。

您可以比较url中的“client_id”参数值与Facebook仪表板中的参数值。

以防有人遇到这个并正在寻找这些设置(就像我一样)

你必须

  1. 在左侧点击“+添加产品”,选择“Facebook登录”(它是在 我的顶部)
  2. 查看左手边的新设置
  3. 现在在“产品设置”中有这些OAuth设置

enter image description here

额外的信息:确保在Facebook登录的设置页面的Valid OAuth redirect URIs字段中添加类似http://localhost:3000的回调URL

我也有同样的问题,

我刚刚在我的应用程序设置https://developers.facebook.com/apps中添加了本地地址http://localhost/Facebook%20Login%20Test.htmlSite URL的链接。

现在它工作得很好:)我希望这是有用的;)

我也有同样的问题。我通过将我的OAuth重定向URI作为参数添加到getAccessToken函数调用来解决它:

$redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback")

如果没有参数被发送到该函数,SDK将自行生成重定向URI,这应该可以工作,但在我的情况下,它没有。

希望这能帮助到一些人。

确保你的应用是公共的。 点击+添加产品 现在转到products => Facebook登录 现在执行以下操作:

有效的OAuth重定向uri: example.com/

去授权回调URL: https://example.com/facebookapp http://unicodeitsolutions.com/ < / p >

在应用程序域部分,你正在写你的应用程序域,但你也需要添加你的登录域,即你要求用户登录的html页面的名称。在我的情况下,我在localhost上测试它,登录路由是localhost/login,如果我只把http://localhost.com放在应用程序域部分,我得到这个错误。但在添加http://localhost/login.com后,错误被修复。 并且在新版本的SDK中,应用程序设置也发生了变化,其中没有OAuth重定向路由选项。在成功获得OAuth令牌后,您必须直接从服务器端分配重定向路由

这个选项应该在门户中启用:

enter image description here

这招对我很管用:

这里需要理解的主要事情是:Facebook总是会检查“WWW”域。因此,首先要确保www.your_domain.dev在浏览器上正常工作。

如果你的本地服务器上有多个虚拟主机,其他一些虚拟主机可能会覆盖"www.your_domain.dev"。请检查一下。 Apache将选择域的FIRST定义(或者端口,或者其他类似的术语——我不是这方面的专家,但从错误中学会了)。 一个简单的快速修复这个虚拟主机覆盖的方法是将"www.your_domain.dev虚拟主机定义"放在"httpd-vhosts.conf"文件的最上面

转到"/ apache / conf / https-vhosts.conf",并把它放在文件的最顶部:

<VirtualHost *:80>
<Directory "C:/your_app_folder_path/">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
allow from All
</Directory>
ServerName your_domain.dev
ServerAlias your_domain.dev
DocumentRoot "C:/your_app_folder_path/"
</VirtualHost>


###### FOR SSL #####
<VirtualHost *:443>
DocumentRoot "C:/your_app_folder_path/"
ServerName your_domain.dev
ServerAlias www.your_domain.dev
SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"
<Directory "C:/your_app_folder_path/">
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

下一个:如果你使用的是Windows系统,在“C:\Windows\System32\drivers\etc”中编辑你的“hosts”文件,添加两行:

127.0.0.1 your_domain.dev
127.0.0.1 www.your_domain.dev

下一个:重新启动Apache服务器,现在一切都应该工作了。


我希望这将帮助你并节省你的时间。 我几乎浪费了一整天的时间在网上搜索,绞尽脑汁也找不到任何有用的东西,直到我发现了这个。

截至2017-10年。

解决了我的问题。

目前FB呈现这个惊喜。

app的客户端OAuth设置。确保客户端和Web OAuth登录是打开的

enter image description here

要调整的设置位于https://developers.facebook.com/apps/ [your_app_itentifier] / fb-login /

后面的斜杠很重要。它们必须与你的应用程序代码和FB管理设置相匹配。所以这是在你的代码中的某个地方的配置(见下面如何获得一个开发应用程序的任何域名):

{
callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash
}

这里

enter image description here

要获取本地Windows机器上应用程序的任何域名,请编辑host文件。自定义名称可以很好地去除所有那些localhost:80800.0.0.0:30303127.0.0.0:8000,等等。因为一些第三方服务,如FB,有时不能让你使用127.0.0.0名称。

在Windows 10上,hosts文件在这里:

C:\Windows\System32\drivers\etc\hosts

备份初始文件,创建一个不同名称的副本(不能在本机Windows CMD。我使用Git for Windows,它有许多Unix命令)

$ cp hosts hosts.bak

将此添加到hosts

127.0.0.1  myfbapp.com # you can access it in a browser http://myfbapp.com:3000
127.0.0.1  www.myotherapp.io # In a browser http://www.myotherapp.io:2020

为了摆脱端口部分:3000设置NGINX,例如。

下面是我解决这个问题的方法: enter image description here < / p >

基本上:

1)启用“嵌入式浏览器OAuth登录

2)禁用“对重定向uri使用严格模式”并输入重定向 就像我做的那样。< / p >

3)保持其他选项不变。

4)保存您的更改。

5)享受:)

< p >点击代码项目 ! 它的Code项目示例。它的工作对我

enter image description here

同样的Facebook错误也发生在我的生产环境中。原因是我在Facebook上注册了2个应用(Local和Production),但我将Local应用ID硬编码到源代码中,并忘记在部署前将其转换为Production应用ID。

最佳实践表明,你不应该将应用ID硬编码到源代码中,但如果你这样做了,也不要像我错误地那样不匹配你的各种Facebook应用ID。

使用我自己的本地服务器。

简单地将http://localhost/my-site作为URL添加到:

https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/

为我工作。

大多数情况下,它发生在没有在FB仪表板的产品部分插入正确的有效的OAuth重定向URL。我建议你跟着我的咆哮走

01. __abc0

enter image description here

02. __abc0

如果不是,你可以很容易地添加登录产品点击+正弦,如我所示在下面。

If Yes刚刚进入产品设置内部。 enter image description here < / p >

03. __abc0

它简单的意思是登录后应该做什么。它就是你的回调URl。你可以看到在我的波纹图我已经添加了几个重定向url。 enter image description here < / p >

  1. 有任何问题继续看我的视频> 李https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s < / >

随着facebook收紧登录程序,问题和答案也在不断变化。今天,我开始收到这个可怕的消息“这个URL的域名不包括在应用程序的域名中。要加载此URL,请将应用程序的所有域和子域添加到应用程序设置中的应用程序域字段。”

答案是:现在FB想要完整的重定向uri。所以对我来说,它以前只是https://www.example.com,现在它想要https://www.example.com/auth/facebook/callback。这必须进入“有效的OAuth重定向uri”字段(开发者/Facebook登录->设置)

Facebook登录->设置->有效的OAuth重定向uri ->插入你的重定向url的域,记住你应该添加'https'或http。 如果你的重定向url是https://xxx.xxx.com/path/callback.do,你只需要输入https://xxx.xxx.com/,这对我来说是ok的

直到我更新了我所使用的SDK版本,我才发现这些都不适合我。我从5.0开始。即使是5.4.0也不行。当我更新到5.6.2时,它完美地工作了,尽管在更改日志中没有任何相关的内容!

为了帮助其他人,当“有效OAuth重定向uri”成为强制性时,我在一个旧站点上开始遇到这种情况。该站点仍然使用V4 PHP SDK,通过升级到V5 SDK,我解决了这个问题。

我修复它的方式:我去有效的OAuth重定向uri文本框,并设置确切的 URL, 不仅仅是定义域:

: https://my-website.com

后:https://my-website.com/facebookoauth/facebooklogin

(url可能与您的情况不同,请在浏览器的地址栏中检查它)。

这是由于设置了“重定向uri使用严格模式”,该设置被锁定在“Yes”位置。

< p >第一步: 使用所有https://example.in或ssl证书URL, 不要使用http://example.in

< p >第二步: facebook应用程序设置->基本设置->添加您的域或子域

< p >第三步: facebook应用程序登录设置->有效的OAuth重定向uri ->添加您的所有重定向url后登录

< p >第四步: facebook应用程序设置->高级设置->域管理器->添加您的域名

所有这些步骤都使用你的应用id,应用版本,应用秘密来设置吗

Facebook最近禁用了'对重定向uri使用严格模式'的切换按钮,所以你需要添加当你点击登录按钮时被调用的确切URI。对于我的案例,它如截图所示。 它为我解决了这个问题:)

enter image description here

不能加载URL:这个URL的域不包括在应用程序的 域。要加载此URL,请添加所有域和子域 在你的应用程序设置的应用程序域字段。

我今天遇到了这个问题,我发现Facebook的文档和SDK对其他开发者是不尊重和傲慢的。

除了在两个不同的位置有“应用程序域”而没有太多信息(如果你添加了一个“web”平台,则为3),你还需要去应用产品/ facebook登录/设置并在有效的OAuth重定向uri下添加你的重定向URL

该错误没有说明oauth设置。

在我的情况下,我必须做的事情是只启用嵌入式浏览器OAuth登录

enter image description here

我也有同样的问题.....issu是在PHP SDK 5.6.2版本,修复是编辑以下文件:

facebook\src\Facebook\Helpers\FacebookRedirectLoginHelper.php

改变这一行

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code']);

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code','enforce_https']);

在Magento 2社交登录扩展,你必须从面板复制有效OAuth重定向uri,并在developers.facebook.com客户端OAuth设置页面中添加有效OAuth重定向uri字段的链接

如果你的游戏没有服务器/站点(例如,如果你像我一样为Gameroom开发)-添加“https://apps.facebook.com/xxxxxxxxxxxxxxxxx”(将你的应用ID而不是“xxxxxxxxxxxx”)到“有效OAuth重定向uri”。

在我的情况下,我解决了这个问题通过添加完整的URL,而不仅仅是facebook要求的域。我希望他们能重新命名,以便更清楚地说明。 所以有效的OAuth重定向uri应该是这样的:
之前: https://www.mobile-battles.com < br > 在< /强劲>:https://www.mobile-battles.com/register

开发者的Meta界面目前提供了两个地方,你可以在这里输入应用程序的域:“应用程序域”下的基本设置,以及“域管理器”下的高级设置。如果您的域仅在域管理器中列出,则SDK可能无法识别。

如果你正在使用AWS Cognito,然后将URL https://<your-user-pool-domain>/oauth2/idpresponse添加到Facebook登录中的有效OAuth重定向uri ->设置

我浏览了网上的所有答案,但没有一个对我有用。

我一直得到这个错误:

JSSDK Unknown主机域 你托管Facebook Javascript SDK的域不在你应用的Javascript SDK主机域列表中。请在应用程序仪表板登录设置中指定主机域

但最后,我找到了解决办法。在写这篇文章的时候(2022年10月下旬),我的情况是这样的:

  1. 转到https://developers.facebook.com/apps/your-app-id-here/fb-login/settings -注意:这个url在未来可能会改变。去你的开发者的应用->产品→Facebook登录->设置
  2. 搜索Allowed Domains for the JavaScript SDK
  3. 我的url是这样写的:https://www.website.com/。在我添加了非www版本之后,一切都解决了!https://website.com/

希望这也能解决其他人的问题!