Laravel Socialite:InvalidStateException(有时)

Web*_*net 11 php laravel-socialite

我网站上的一些用户正在体验Laravel\Socialite\Two\InvalidStateException.我已经采取了对Laravel Socialite的回复中概述的步骤:InvalidStateException并且无法解决问题.只有一小部分用户似乎遇到了这种情况.

我有2个fpm/nginx docker容器坐在HAProxy负载均衡器后面.

Waq*_*ary 7

这似乎是无效状态的问题交际花包,在这个已经解决

您的一些用户正在使用不同的网址(https://www.example.comhttps://example.com)访问您的网站,因此导致会话中的“状态”不匹配。

如果您使用的是 Larvel 5.3 及更高版本...SESSION_DOMAIN=http://example.com.env文件中添加一个

对于其他版本,请转到您的config/session.php文件,并添加您的域。'domain' => 'www.example.com'

立即应用更改。运行'php artisan cache:clear''composer dump-autoload'希望这可以解决问题。

  • @ConnorLeech 对于本地主机阶段,谷歌将忽略它,此解决方案仅适用于生产阶段 (2认同)

小智 5

我敢打赌,问题的出现是由于负载均衡器造成的。这是我的理论:

  1. 粘性会话:如果您的负载均衡器没有正确配置粘性会话,某些用户可能会在服务器 1 上启动新会话,并在后续请求时在服务器 2 上结束,这可能会抛出Laravel\Socialite\Two\InvalidStateException

  2. 请求超时:我不确定这一点,但是,也许您的会话生命周期不足以完成某些也会引发Laravel\Socialite\Two\InvalidStateException

也许如果你将 Laravel 会话存储更改为去中心化数据库而不是默认的文本文件配置,该异常就会得到解决。