Google API的社交名流laravel身份验证错误

时间:2018-11-17 06:18:37

标签: laravel google-api laravel-socialite

我一直在使用Socilte软件包进行用户登录,即使用 facebook google twiter github API。所有其他API都可以正常使用, google API期望,从Google返回时显示错误。

  

HTTP错误403-禁止

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

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

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

2 个答案:

答案 0 :(得分:1)

出现此错误的原因是未启用Google+ API,请在Google控制台帐户上启用Google+ API。

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

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


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

答案 1 :(得分:1)

几天前,我面临着同样的问题。甚至谷歌搜索都不能解决我的问题。 因此,我决定深入研究它,并猜测是什么,我找到了此问题的适当原因。

就我而言,原因是Google回调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',
];

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