【发布时间】:2019-11-08 19:48:04
【问题描述】:
我最近将我的应用程序移到了实时服务器中。
问题是 laravel socialite 停止工作,下面是解释:
我点击谷歌登录并选择电子邮件后,在回调时会发生这种情况:InvalidStateException on Abstract.php on line 200.
为了解决这个问题,我使用了stateless(),现在新的错误是:Client error: `POST https://www.googleapis.com/oauth2/v4/token` resulted in a `400 Bad Request` response: { "error": "invalid_request", "error_description": "Missing required parameter: code" }
这是我已经尝试过的事情的清单:
1- 在 Google 网站中,我将 google api url 和 callback url 更新为新的实时域地址:
http://www.domain-name.com 和 http://www.domain-name.com/login/google/callback
2- 我修改了 config/session.php 文件,如下所示:'domain' => env('SESSION_DOMAIN', 'www.domain-name.com'),
3- 我的存储文件夹已经拥有这样的权限:drwxrwxr-x 5 root www-data 4096 Jun 24 18:30 storage
4- 我更改了vendor\laravel\socialite\src\Two\GoogleProvider.php 文件并删除了“配置文件”,现在它看起来像这样:
protected $scopes = [
'openid',
'email',
];
5- 我使用了php artisan cache:clear,composer dump-autoload,多次清除浏览器缓存数据。
6- 我试过 $userSocial = Socialite::with('google')->user(); 而不是 $userSocial = Socialite::driver('google')->user(); ,但我仍然得到 InvalidStateException on Abstract.php on line 200。只有当我更改为$userSocial = Socialite::driver('google')->stateless()->user(); 时,错误才会更改为我在问题开头所说的内容。
我的config/services.php文件是这样的:
'google' => [
'client_id' => 'my-correct-client-id-from-google',
'client_secret' => 'my-correct-client-secret-from-google',
'redirect' => 'http://www.domain-name.com/login/google/callback',
],
我已经尝试解决此问题 2 天了。任何帮助将不胜感激。
【问题讨论】:
-
您有 SSL 证书吗?在生产环境中,Google 可能只会向 HTTPS 端点提供代码以避免被拦截。
-
真的吗?!我从来没有想到过……不,我还没有 SSL 证书。希望这行得通。
-
不是 SSL 证书问题。
标签: laravel exception google-oauth laravel-5.8 laravel-socialite