首页 文章

Facebook OAuth“此网址的域名不是't included in the app'的域名”

提问于
浏览
190

首先让我说我已经搜索了这个问题的答案已经有一段时间了......

我正在尝试设置Facebook OAuth以使用我的机器上本地开发的应用程序 . 一切都与Facebook授权完美结合UNTIL我从使用 localhost 转移到另一个域名(仍然是我的机器本地 . )现在我收到以下错误 .

无法加载网址:此网址的域名未包含在应用的域中 . 要加载此网址,请将应用的所有域和子域添加到应用设置中的应用域名字段中 .

我的主机文件包含 127.0.0.1 photovote.dev (完美无缺)

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

在我的Facebook应用程序设置中...

  • 我的App域名是 photovote.dev

  • 我的网站网址是 http://photovote.dev/

  • 我的有效OAuth重定向URI是 http://photovote.dev/auth/facebook/callback

错误消息时的URL是..

https://www.facebook.com/v2.5/dialog/oauth?client_id=XXXXXXXXXXXXXXX&redirect_uri=http%3A%2F%2Fphotovote.dev%2Fauth%2Ffacebook%2Fcallback&scope=email&response_type=code&state=0ztcKhmWwFLtj72TWE8uOKTcf65JmePtG95MZLDD

我不知道问题是什么......

屏幕截图1

Screen Shot

屏幕截图2
enter image description here

26 回答

  • 43

    我有同样的问题,

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

    现在它工作正常:)我希望这是有用的;)

  • 4

    确保您的应用是公开的 . 点击添加产品现在转到产品=> Facebook立即登录执行以下操作:

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

    取消对回调网址的授权:https://example.com/facebookapp
    http://unicodeitsolutions.com/

  • 0

    This worked for me:

    以下是需要了解的主要内容:Facebook将始终检查“ WWW ”域名 . 因此,请确保 www.your_domain.dev 首先在您的浏览器上运行 .

    如果本地服务器上有多个虚拟主机,则某些其他虚拟主机可能会覆盖文件"httpd-vhosts.conf"顶部的“ www.your_domain.dev ". So please check that. Apache will pick the FIRST definition of domain (or ports, or something in these terms - I'm no expert on this, but learned by mistakes). An easy quick fix for this virtual host overriding is to put " www.your_domain.dev虚拟主机定义” .

    转到“ /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>
    

    Next: 如果您使用的是Windows系统,请在"C:\Windows\System32\drivers\etc"中添加两行来编辑"hosts"文件:

    127.0.0.1 your_domain.dev
    127.0.0.1 www.your_domain.dev
    

    Next: 重启Apache服务器,现在一切正常 .


    我希望这能帮到你,节省你的时间 . 我浪费了差不多整整一天的时间在网上搜索,然后把头发拉出来,直到找到这个才找到任何有用的东西 .

  • 4

    应在门户网站中启用此选项:

    enter image description here

  • -1

    如果这有助于其他任何人,当“有效的OAuth重定向URI”成为强制性时,这在旧网站上开始发生 . 该网站仍在使用V4 PHP SDK,通过升级到V5 SDK解决了我的问题 .

  • 0

    我遇到了同样的问题,它来自错误的client_id / Facebook App ID .

    您是否将Facebook应用程序切换为“公共”或“在线”?当您这样做时,Facebook会创建一个带有新App ID的新应用程序 .

    您可以将网址中的“client_id”参数值与Facebook信息中心中的值进行比较 .

  • 18

    如果您在Facebook中创建应用程序时输入了错误的详细信息,通常会发生这种情况 . 或者您是否更改了现有应用程序的URL?

    你能否在这个页面上重新检查你APP的设置?

    https://developers.facebook.com/apps

    • 选择正确的应用程序并单击编辑按钮;

    • 检查URL和路径是否正确输入,并指向您已安装Ultimate Facebook插件的站点 .

  • 2

    在我更新我使用的SDK版本之前,没有什么对我有用 . 我从5.0开始 . 甚至5.4.0都不会起作用 . 当我更新到5.6.2时,尽管更改日志中没有任何相关内容,但它仍能完美运行!

  • 182

    在应用程序域部分中,您正在编写应用程序域,但您还需要添加登录域,即要求用户登录的html页面的名称 . 在我的情况下,我在localhost上测试它,登录路由是localhost / login,如果我只将http://localhost.com放在App域部分,我收到此错误 . 但是在添加http://localhost/login.com之后,错误得到了修复 . 此外,在较新版本的SDK中,应用程序设置已更改,其中没有OAuth重定向路由选项 . 成功获取OAuth令牌后,您将直接从服务器端分配重定向路由 .

  • 0

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

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

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

    希望这有助于某人 .

  • 29

    以下是我为解决此问题所做的工作:
    enter image description here

    基本上:

    1)启用“ Embedded Browser OAuth Login

    2)禁用“ Use Strict Mode for Redirect URIs ”并输入重定向URI,就像我一样 .

    3)保留所有其他选项 .

    4)保存您的更改 .

    5)享受:)

  • 1

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

    只需在以下位置添加 http://localhost/my-site 作为网址:

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

    为我工作 .

  • 0

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

    你必须

    • 在左边手边,单击"+Add Product"并选择"Facebook Login"(它在我的顶部)

    • 查看左侧可用的新设置

    • 您现在将在"Product Settings"上设置这些OAuth

    enter image description here

    Additional Info: 确保将 http://localhost:3000 之类的回拨网址添加到Facebook登录设置页面上的 Valid OAuth redirect URIs 字段

  • 7

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

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

    第三步:faceboook应用程序登录设置 - >有效OAuth重定向URI->登录后添加所有重定向URL

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

    完成所有这一步,然后使用您的应用程序ID,应用程序版本,app secret进行设置

  • 0

    大多数答案都是将URL添加到应用程序的域中,但在公司工作时,您没有这些访问权限 . 对于这些,您可以通过简单地创建虚拟主机并进行主机条目来绕过这一点 .


    将其添加到主机文件(/ etc / hosts)127.0.0.1 www.your_domain.com中

    创建一个虚拟主机 . 我已经将它用于apache虚拟主机

    ServerAdmin webmaster @ localhost ServerName www.your_domain.com

    ProxyPass / http://localhost:5006/
        RewriteMap  lc int:tolower
        LogLevel debug
    
  • 6

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

    facebook\src\Facebook\Helpers\FacebookRedirectLoginHelper.php

    change this line

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

    to

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

  • 0

    大部分时间都没有在FB仪表板的产品部分插入正确的 valid OAuth redirect URL . 我建议按照我的下面的步骤

    1. Check the basic setting of the app is okay with bellow picture with you

    enter image description here

    1. check whether you have add a product

    如果没有,您可以通过单击正弦显示波纹管中的正弦来轻松添加登录产品 .

    如果是,只需进入产品设置 .
    enter image description here

    1. The check whether you have provide valid OAuth redirect URL

    它的简单意味着登录后应该是什么 . 除了你的回调URl之外,你可以在我的下面的图片中看到我添加了几个重定向网址 .
    enter image description here

  • 5

    无法加载网址:此网址的域名未包含在应用的域中 . 要加载此网址,请将应用的所有域和子域添加到应用设置中的应用域名字段中 .

    我今天遇到了这个问题,我发现Facebook文档和SDK对其他开发人员至少可以说是不尊重和傲慢 .

    除了在没有太多信息的情况下将"app domains"放在两个不同的位置(如果您添加"web"平台,则为3),您还需要转到 app products / facebook login / settings 并在 Valid OAuth Redirect URIs 下添加重定向网址

    错误说没有关于oauth设置 .

  • 2

    在我的情况下,我必须做的事情只是启用 Embedded Browser OAuth Login

    enter image description here

  • 58

    我修复它的方式:我转到了有效的OAuth重定向URI文本框并设置了 exact URL, not just the domain

    之前: https://my-website.com

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

    (在您的情况下,网址可能会有所不同,请在浏览器的地址栏中查看) .

    这是由设置使用重定向URI的严格模式引起的,该模式已锁定在“是”位置 .

  • 0

    Facebook最近禁用了按下登录按钮时调用' Use Strict Mode for Redirect URIs ', so you need to add exact URI what'的切换按钮 . 对于我的情况,它是如截图所示 . 它解决了我的问题:)

    enter image description here

  • 2

    当FB收紧登录程序时,问题和答案会不断变化 . 今天,我开始收到这条恐怖消息“该URL的域名未包含在应用程序的域中 . 为了能够加载此URL,请将应用程序的所有域和子域添加到应用程序设置中的”应用程序域“字段中 .

    答案是:现在FB想要完全重定向uri . 所以对我来说,它曾经只是https://www.example.com它现在想要https://www.example.com/auth/facebook/callback . 这必须进入"Valid OAuth redirect URIs"字段(Developer / Facebook login-> setting)

  • 3

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

  • 1

    在 生产环境 环境中,我发生了同样的Facebook错误 . 原因是我在Facebook(本地,制作)注册了2个应用程序,但我将本地应用程序ID硬编码到源代码中,并且忘记在部署之前将其切换为 生产环境 应用程序ID .

    最佳实践要求您不应将应用程序ID硬编码到源代码中,但如果您这样做,请不要错过您错误地使用的各种Facebook应用程序ID .

  • 3

    点击here Code Project!其代码项目示例 . 它对我有用

    enter image description here

  • 1

    截至2017年10月 .

    解决我的问题的解决方案 .

    目前,FB给出了这个惊喜 .

    ...应用程序的客户端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 .

相关问题