使用Google API的社交网格laravel身份验证错误

问题描述 投票:4回答:2

我一直在使用Socilte包登录用户,我使用的是facebook,google,twiter和github API。所有其他API工作正常,期待谷歌API,它从谷歌返回时显示错误。

HTTP错误403 - 禁止

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

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

public function handleGoogleCallback()
{
     $user = Socialite::driver('google')->stateless()->user();        
}
laravel google-api laravel-socialite
2个回答
1
投票

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

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

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


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


1
投票

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

在我的情况下,原因是谷歌回调网址中的.profile一词。

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

我与我的托管服务提供商(Hostgator)就这一点进行了对话,最初他们说这个问题出现在代码中并不在他们身边。但是我有足够的证据(我确实通过将.profile改为.abc和huaa ......问题显示出来......)向他们展示这个问题来自服务器端。然后他们正在推销我的VPS主机(我有共享托管),但我拒绝接受它然后最后他们接受他们有一个mod_security规则,防止单词.profile出于安全原因。

他们当然有一个奇怪的模块安全规则。

当我得到它他们不会为我改变mod_security规则然后我改变了社交网络核心包

核心/供应商/ laravel /社会名流/ src目录/双/ GoogleProvider.php

并评论了这里的个人资料

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

一切都很好,除了我不能得到用户名,因为评论的配置文件,但对我来说,这是很好的去。所以这可能是摆脱糟糕的服务器规则的一个技巧。

© www.soinside.com 2019 - 2024. All rights reserved.