0

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

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


尝试为 Cakephp 使用这个 HybridAuth 插件,除了重定向 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 的设置,这似乎没有做任何事情。还在互联网上尝试了很多随机的东西,这些东西似乎破坏了更多的东西。我现在有点迷路了。

新更新

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

旧更新

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

4

1 回答 1

0

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

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

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

于 2019-04-17T23:11:38.503 回答