hybridauth 2.13.0 + Google 身份验证

hybridauth 2.13.0 + Google authentication

我在我的网站 (PHP 7.0) 上使用 hybridauth 进行社交登录已有好几年了。

我现在将它更新到 2.13.0 版(目前最新的稳定版)

我确实设法配置并使 Facebook、Twitter、Linkedin 正常工作。

我受困于 Google。这里的配置:

"Google" => array(
                "enabled" => true,
                "keys" => array("id" => "$social_google_id", "secret" => "$social_google_secret"),   
                "scope" => "https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email"  
            ),

一切都很好,但看起来 Google 发回的重定向 url 在我收到消息时在服务器级别的路径中产生了误解:

Forbidden

You don't have permission to access /hybridauth/ on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

url 字符串是: https://example.com/hybridauth/?hauth.done=Google&code=4/5QDkTNFvdiPkmQCct6m0bJ5Y_j0VjRSITw6EMn3NjyT6HPlrThx0iK5NrXkdxWnYoE0V_Y0ALV6iayHBuCb8Pk&scope=email+profile+https://www.googleapis.com/auth/userinfo.profile+https://www.googleapis.com/auth/userinfo.email

如果我把最后一部分剪成: https://example.com/hybridauth/?hauth.done=Google&code=4/5QDkTNFvdiPkmQCct6m0bJ5Y_j0VjRSITw6EMn3NjyT6HPlrThx0iK5NrXkdxWnYoE0V_Y0ALV6iayHBuCb8Pk&scope=email+profile

然后它工作了,我从用户那里得到了数据

我倾向于认为这与 Google 范围内的斜杠有关。

知道如何排序吗?可能是 .htaccess 中的重写规则?

编辑

我再次检查,违规部分是“.profile”

事实上,如果我只指定电子邮件的范围,它就可以工作...问题是我还需要用户名... 有什么想法吗?

这里是来自 Apache

的 error_log

[2 月 2 日星期六 08:26:31.790178 2019] [:error] [pid 4117:tid 47611986818816] [客户端 94.39.134.131:52882] [客户端 94.39.134.131] ModSecurity:访问被拒绝代码 403(第 2 阶段)。 ARGS:scope 处的匹配短语“.profile”。 [文件“/etc/apache2/conf.d/modsec_vendor_configs/comodo_apache/08_Global_Other.conf”][行“57”][id“210580”][rev“2”][msg"COMODO WAF: OS File Access Attempt||example.com|F|2"][数据"Matched Data: .profile found within ARGS:scope: email profile https:/www.googleapis.com/auth/userinfo.email https:/www.googleapis.com/auth/userinfo.profile"] [严重性"CRITICAL"] [标签"CWAF"] [标签"Other"] [主机名"example.com"] [uri "/hybridauth/"] [unique_id "BFVTJ0Unmh26fJ3XSeVQFeABAAE"], 推荐人: https://accounts.google.it/accounts/SetSID

好的,对于遇到此问题的任何人,已确认这是服务器端设置。

我联系了我的托管服务提供商,他们确认问题是误报:

他们说:

"Block was related to WAF mod_security server side which can generate false positive. We excluded the rule which caused that behaviour"

完成后一切正常