【问题标题】:HybridAuth Facebook Invalid Scope: Array (Please check lower letter case or delimiter)HybridAuth Facebook 无效范围:数组(请检查小写字母或分隔符)
【发布时间】:2020-12-16 14:43:55
【问题描述】:

Facebook 几天前开始返回此错误:

“无效范围:数组(请检查小写字母或分隔符)”

我已经有一段时间没有更改登录功能或 Facebook 应用程序设置了。知道这个范围有什么问题,或者发生了什么变化吗?

$config = [
        'callback' => HttpClient\Util::getCurrentUrl(),
        'providers' => [
            PROVIDER => [
                "enabled" => true,
                "keys"    => [
                "id" => "nnnnnnnnnnnnnnn",
                "secret" => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ],
                "scope"   => ['public_profile', 'email']
            ],         
        ],
    ];

facebook 错误页面的 uri 是:

https://www.facebook.com/dialog/oauth?response_type=code&client_id=nnnnnnnnnnnnnnn&redirect_uri=https%3A%2F%2Fxxxxxxxxx.com%2Ffacebook-login.php&scope[0]=public_profile&scope[1]=email&state=HA-nnnnxnnnnxnnnnxnnnnxnnnnxnnnnxnnnx

您可以在这里尝试我的 Facebook 登录: https://trailsnh.com/dashboard.php

【问题讨论】:

  • 我将范围更改为这个,这似乎解决了它:“范围”=> 'email,public_profile'

标签: facebook hybridauth


【解决方案1】:

我知道您说过您通过将其更改为逗号分隔的字符串来修复它,这很好。关于这方面的文档在 Facebook Developer site 上。在那里,他们说:

范围。向使用您的应用的人请求的权限列表,以逗号或空格分隔。

就我个人而言,我会将其更改为空格分隔,因为这就是 defined in the OAuth specification

范围参数的值表示为以空格分隔、区分大小写的字符串列表。

如果它在 Facebook 再次发生变化,我希望它仍然符合规范。所以,如果你把它改成任何东西,我认为这是更防弹的选择。

【讨论】:

    猜你喜欢
    • 2016-04-12
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 2014-02-12
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多