找不到 HybridAuth 重定向 URL 设置

Posted

技术标签:

【中文标题】找不到 HybridAuth 重定向 URL 设置【英文标题】:Cannot find HybridAuth redirect URL settings 【发布时间】:2019-09-08 04:09:29 【问题描述】:

不是Facebook login message: "URL Blocked: This redirect failed because the redirect URI is not whitelisted in the app’s Client OAuth Settings."的重复项

这个问题是关于 Cakephp 发送错误的 URL。完全理解为什么 Facebook 不喜欢该 URL,不清楚如何在 CakePHP 中修复它


尝试为 Cakephp 使用this HybridAuth plugin,一切似乎都正常,除了重定向 URL 有 http,这是 facebook 不喜欢的。我需要使它成为https。我不知道如何操纵这个值。

https://www.facebook.com/v2.12/dialog/oauth?auth_type=rerequest...redirect_uri=http%3A%2F%2Fwww.example.com%2Fhybrid-auth%2Fendpoint%3Fhauth_done%3DFacebook&scope=email%2Cpublic_profile

这给了我这个错误,这是有道理的:

URL Blocked: This redirect failed because the redirect URI 
is not whitelisted in the app’s Client OAuth Settings. Make 
sure Client and Web OAuth Login are on and add all your app 
domains as Valid OAuth Redirect URIs.

我已经尝试解决这个问题大约两个小时。我试过设置

'hauth_return_to' => [
                    'controller' => 'Lookings',
                    'action' => 'find',
                    'prefix' => false,
                    'plugin' => false,
                    '_ssl' => true
                ]

在 AppController 中对 HybridAuth 进行身份验证设置,这似乎没有任何作用。还在互联网上尝试了很多随机的东西,这些东西似乎破坏了更多的东西。我现在有点迷茫。

新更新

我已经在hybridauth/Hybrid/Providers/Facebook.php 中的loginBegin 方法中跟踪了这个URL 的来源,它在$this->params['login_done']; 中,尽管我现在不确定这是在哪里设置的。

旧更新

无论我做什么,更新 Appcontroller 身份验证设置似乎都不会影响这个特定的 URL。我相信此设置与“URL 登录完成”重定向 URL 有关,我的问题与“URL 开始登录”URL 有关,但我并不完全确定。

【问题讨论】:

Facebook login message: "URL Blocked: This redirect failed because the redirect URI is not whitelisted in the app’s Client OAuth Settings."的可能重复 @ahoffner 我知道这是这个问题,但不是如何在 CakePHP 插件 HybridAuth 的范围内解决它。因此被标记为 cakephp 标签而不是 Facebook 标签。 【参考方案1】:

将“base_url”属性添加到/config/hybridauth.php 中的HybridAuth 对象以手动设置基本URL。

此外,base_url 似乎是使用 $_SERVER['HTTPS'] 创建的,在我当前的环境中显然没有设置为 true。这可以在Hybrid_Provider_Adapter 类的login 方法中找到。

解决这些问题中的任何一个都应该解决问题。

【讨论】:

以上是关于找不到 HybridAuth 重定向 URL 设置的主要内容,如果未能解决你的问题,请参考以下文章

如果在 django 的 urls.py 中找不到,则将任何 url 重定向到 404.html

PHP HybridAuth 社交登录根本不起作用。重定向到 ?hauth.start=Facebook&hauth.time

动态 Google API 重定向网址

允许重定向到不在 htdocs 中的 URL (XAMPP)

如果找不到内容,则重定向到旧网站[关闭]

通过 IIS 将 http 重定向到 https