【问题标题】:socialite laravel authantication error with google API谷歌 API 的社交名媛 laravel 身份验证错误
【发布时间】:2019-04-20 06:52:51
【问题描述】:

我一直在使用 Socilte 包进行用户登录,我使用 facebookgoogletwitergithub API。除了 google API,所有其他 API 都工作正常,从 google 返回时显示错误。

HTTP 错误 403 - 禁止

Web 服务器配置为不列出此目录的内容,或者您​​没有足够的权限访问该资源。

这是我的回调函数,实际上它并没有到达这个回调函数:

public function handleGoogleCallback()
{
     $user = Socialite::driver('google')->stateless()->user();        
}

【问题讨论】:

  • 这是我的路线 :Route::get('/google/callback', 'Auth\LoginController@handleGoogleCallback');
  • 控制台中也启用了 Google + API
  • 我也有同样的问题,请告诉我

标签: laravel google-api laravel-socialite


【解决方案1】:

几天前我也遇到了同样的问题。即使谷歌搜索它也没有解决我的问题。 所以我决定深入研究一下,猜猜是什么,我找到了这个问题的适当原因。

在我的情况下,原因是谷歌回调 URL 中的单词 .profile

'https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile'(我的回调网址的一部分)

我与我的托管服务提供商 (Hostgator) 就此事进行了交谈,最初他们说这个问题出在代码中,而不是在他们身边。但是我有足够的证据(我确实通过将 .profile 更改为 .abc 和 huaa 来向他们展示......问题消失了......)向他们展示这个问题来自服务器端。然后他们向我推销 VPS 托管(我有共享托管),但我拒绝接受它,最后他们接受了他们有一个 mod_security 规则,该规则阻止了 .profile 这个词的安全原因。

他们当然有一个奇怪的 mod_security 规则。

当我得知他们不会为我更改 mod_security 规则时,我更改了 socialite 核心包

core/vendor/laravel/socialite/src/Two/GoogleProvider.php

并在此处评论个人资料

protected $scopes = [
    'openid',
    //'profile',
    'email',
];

然后一切都很好,除了我因为评论个人资料而无法获得用户名,但对我来说这很好。所以这可能是一个摆脱不良服务器规则的技巧。

【讨论】:

    【解决方案2】:

    出现此错误的原因是因为 Google+ API 未启用,请转到 google 控制台帐户并启用 Google+ API。

    从这里打开您的 Google 控制台帐户:console.developers.google.com

    然后转到 -> 库 -> 选择 Google+ API -> 启用


    注意: 如果这不起作用,请更改托管服务器并尝试

    【讨论】:

    • 谁能帮忙??
    • @AtinderSingh 希望对您有所帮助,这是我成功的 socialite 代码库
    • @Ramesh 转到 Laravel->sociallite->src->two->GoogleProvider.php 类,并编辑受保护范围数组变量
    • @AtinderSingh 你的问题已经解决了,你可以在这里发布答案,这将有助于我们未来的许多用户
    • @Gurpalsingh "AtinderSingh" 得到了解决方案,他还没准备好在这里回答。别管它。不要在这里问。最好尝试探索。
    猜你喜欢
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多