Php 拉威尔社交名流:无效状态例外(有时)
我网站上的一些用户正在体验 aPhp 拉威尔社交名流:无效状态例外(有时),php,laravel-socialite,Php,Laravel Socialite,我网站上的一些用户正在体验 aLaravel\Socialite\Two\InvalidStateException。我已采取答复中概述的步骤,但未能解决该问题。只有一小部分用户似乎正在经历这种情况 我有两个fpm/nginx docker容器,位于HAProxy负载平衡器后面。我敢打赌,出现问题的原因是负载平衡器。我的理论是: 粘性会话:如果您的负载平衡器没有正确配置粘性会话,一些用户可能会在服务器1上启动新会话,并在以下请求下在服务器2上结束会话,这可能会引发Laravel\Socialit
Laravel\Socialite\Two\InvalidStateException
。我已采取答复中概述的步骤,但未能解决该问题。只有一小部分用户似乎正在经历这种情况
我有两个fpm/nginx docker容器,位于HAProxy负载平衡器后面。我敢打赌,出现问题的原因是负载平衡器。我的理论是:
Laravel\Socialite\Two\InvalidStateException
Laravel\Socialite\Two\InvalidStateException
如果将laravel会话存储更改为分散数据库而不是默认的文本文件配置,则可能会解决该异常。这似乎是包中的无效状态问题,该问题已在该包中解决 您的一些用户使用不同的url(或)访问您的网站,因此导致会话中的“状态”不匹配 如果你在5.3级及以上。。。添加一个
会话\u域=http://example.com.env
文件中的
对于其他版本,请转到您的config/session.php
文件,并添加您的域<代码>'domain'=>'www.example.com'
立即应用更改。运行
'php artisan cache:clear'
和'composer dump autoload'
,希望这样可以解决问题 在生产环境文件中,只需添加SESSION\u DOMAIN=即可由config/SESSION.php获取。对于本地开发,您不需要它。替换
Socialite::driver('google')->user();
遵守这一准则
Socialite::driver('google')->stateless()->user();
任何社交请尝试@KareemEssawy中的答案,指出out是一个巨大的安全问题。您可能可以在开发环境中尝试解决问题的原因,是登录功能还是其他原因,您是否也使用社交名将OAuth身份验证用于Facebook?请尝试此操作—删除所有会话并让用户重新登录。会话将保留在外部
redis
实例中,这两个nginx/fpm
容器共享用于会话存储。这难道不能消除粘性会话理论吗?是的,这不是一个粘性会话问题。是否通过API进行身份验证?读到redis关于社交名媛的文章,我觉得这可能会有帮助。所以。。。也许我是个无国籍的人。用户登录后,我使用令牌从他们的API获取更多数据。在这个场景中使用无状态是否合适?您是否发现了问题所在?我是说,你的后端和前端分开了吗?您的应用程序是否使用oauth或类似软件对用户进行身份验证?它在一周前随机停止出现。虽然我可以确认我已经10多天没有接触过这个过程了。所以我不知道你对localhost做了什么?我想简单地写一下localhost,或者如果你有一个端口,那么你的答案底部的社交是什么意思?