“URL 被阻止:此重定向失败,因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单。”但在本地工作

Posted

技术标签:

【中文标题】“URL 被阻止:此重定向失败,因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单。”但在本地工作【英文标题】:“URL Blocked: This redirect failed because the redirect URI is not whitelisted in the app’s Client OAuth Settings.” But works locally 【发布时间】:2020-03-27 09:35:30 【问题描述】:

我在这里遇到问题Facebook login message: "URL Blocked: This redirect failed because the redirect URI is not whitelisted in the app’s Client OAuth Settings."

我已经检查了各种答案 - 无法使其工作,并且他们没有提供太多新的 - 实际上只是说将 url 添加到该字段。

其中一位说“确保您的应用 ID 和密钥正确无误”。 我发现它们没有设置,但现在管理员说他添加了这些,所以应该没问题。

还有什么可做的?如何调试?

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

它还告诉检查客户端和 Web OAuth 以进行,但我将它们关闭以提高安全性,因为我已经阅读或观看了 Facebook 文档中的某处。并且由于登录在本地工作且它们已关闭,因此不需要它们。我通过尝试打开它们进行了测试,但正如我预期的那样,它们并没有解决问题。

更新: 重定向uri参数为redirect_uri=https%3A%2F%2Falpha.vop.veracityinsurance.com%2Fconnect%2Ffacebook%2Fcheck

制作视频:https://www.loom.com/share/88e607aece6b45489214d95ee01bbb0b

我已经制作了调试功能并将其推送到打印提供者的服务器:

$provider = (array)$this->clientRegistry->getClient('facebook_main')->getOAuth2Provider();
        print_r($provider);

从那个类中我看到应用程序 ID 在服务器中是正确的。

config.yml

knpu_oauth2_client:
    clients:
        # the key "facebook_main" can be anything, it
        # will create a service: "knpu.oauth2.client.facebook_main"
        facebook_main:
            # this will be one of the supported types
            type: facebook
            client_id: '%env(CONFIG__OAUTH__FACEBOOK__ID)%'
            client_secret: '%env(CONFIG__OAUTH__FACEBOOK__SECRET)%'
            # the route that you're redirected to after
            redirect_route: connect_facebook_check
            redirect_params: 
            graph_api_version: v5.0

顺便说一句,我正在使用 symfony 捆绑包进行集成 https://github.com/knpuniversity/oauth2-client-bundle

【问题讨论】:

当然,您需要将 Client OAuth Login 和 Web OAuth Login 设置为 on……毕竟,通过 Web 登录是您想要做的,不是吗? 您何时收到消息,何时将显示登录对话框,或者之后何时将代码交换为令牌?登录对话框调用中的 redirect_uri 参数的确切值是多少? (检查浏览器地址栏。) @04FS - 为什么?它适用于我的机器。我也在我的机器上通过网络登录。 @04FS - 在我的例子中没有登录对话框。用户点击了我的方法的链接。然后我的方法重定向到 facebook。我正在使用这个包:github.com/knpuniversity/oauth2-client-bundle 当然,因为这正是他们的目的。我无法告诉你为什么关闭这些功能甚至不应该工作,似乎“在你的机器上”工作,因为到目前为止你提供的关于你实际在做什么的信息很少。 (或者您可能仍在使用与您想象的不同的应用 ID。) 【参考方案1】:

使它像 04FS 所说的那样工作以打开设置。只打开其中一个就足够了 - Web OAuth Login。

【讨论】:

以上是关于“URL 被阻止:此重定向失败,因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单。”但在本地工作的主要内容,如果未能解决你的问题,请参考以下文章

“URL 被阻止:此重定向失败,因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单。”但在本地工作

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

用于 Facebook 应用登录的有效 OAuth 重定向 URI