laravel社交名流不在实时服务器上工作,仅在本地计算机上工作

laravel社交名流不在实时服务器上工作,仅在本地计算机上工作,laravel,exception,google-oauth,laravel-5.8,laravel-socialite,Laravel,Exception,Google Oauth,Laravel 5.8,Laravel Socialite,我最近将我的应用程序移动到了一个实时服务器上 问题是拉威尔的社交名流停止了工作,下面是解释: 我点击谷歌登录,选择电子邮件后,在回拨时会发生这种情况: 第200行Abstract.php上的InvalidStateException。 为了解决这个问题,我使用了stateless(),现在新的错误是: 客户端错误:`POSThttps://www.googleapis.com/oauth2/v4/token`导致“400错误请求”响应:{“错误”:“无效请求”,“错误描述”:“缺少必需参数:代码

我最近将我的应用程序移动到了一个实时服务器上
问题是拉威尔的社交名流停止了工作,下面是解释:
我点击谷歌登录,选择电子邮件后,在回拨时会发生这种情况:
第200行Abstract.php上的InvalidStateException。
为了解决这个问题,我使用了
stateless()
,现在新的错误是:
客户端错误:`POSThttps://www.googleapis.com/oauth2/v4/token`导致“400错误请求”响应:{“错误”:“无效请求”,“错误描述”:“缺少必需参数:代码”}

以下是我已经尝试过的事情列表:
1-在谷歌网站上,我将谷歌api
url
回调url
更新为新的实时域名地址:
http://www.domain-name.com
http://www.domain-name.com/login/google/callback

2-我修改了config/session.php文件,如下所示:
'domain'=>env('SESSION\u domain','www.domain-name.com'),

3-我的存储文件夹已具有如下权限:
drwxrwxr-x 5 root www-data 4096 Jun 24 18:30存储

4-我更改了
vendor\laravel\socialite\src\Two\GoogleProvider.php
文件并删除了“profile”,现在看起来是这样的:

protected $scopes = [
'openid',
'email',
];
'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',
],
5-我多次使用php artisan cache:clear,
composer dump autoload
,并清除浏览器缓存数据

6-我尝试了
$userSocial=Socialite::with('google')->user()
而不是
$userSocial=Socialite::driver('google')->user(),我仍然在第200行的Abstract.php上得到
InvalidStateException。仅当我更改为
$userSocial=Socialite::driver('google')->无状态()->user()时错误更改为我在问题开头所说的内容

我的
config/services.php
文件如下:

protected $scopes = [
'openid',
'email',
];
'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',
],

我已经试着修复这两天了。任何帮助都将不胜感激。

在浪费了许多小时之后。终于找到了答案:
这是nginx:
所以我运行了
sudo nano/etc/nginx/sites available/default

并修正了这一行:

try_files $uri $uri/ /index.php?query_string; // wrong 

谢谢@Pooria Honarmand 花了几个小时后,我发现了你提到的同样的原因。 因为我无法更改默认配置

或者,您可以设置如下参数:

$urlArr=parse_url($_SERVER['REQUEST_URI']);
parse_str($urlArr['query'], $output);
$request->merge($output);

我遇到了同样的问题,今天我花了两天多的时间更新了我的composer,删除了我的供应商文件夹,再次安装了composer,问题已经解决了

您是否有SSL证书?在生产中,谷歌可能只向HTTPS端点提供代码以避免被截获。真的吗?!我从来没有想到过。。。不,我还没有SSL证书。希望这能起作用。这不是SSL证书问题。