laravel - Nginx 负载均衡器背后的 Laravel Socialite
问题描述
我有一个 Laravel 7 APP,在 NGINX 负载均衡器后面有两个实例,SSL 在负载均衡器处终止,我已经按照 Laravel 文档中的描述设置了受信任的代理,它按预期工作,所有流量都使用 HTTPS。我有两个 Laravel 实例使用相同的 Redis 服务器进行会话,并使用单独的 Redis 服务器进行缓存,并且两个实例都在 .env 中使用相同的会话域
如果两个 Laravel 服务器都是负载均衡器中的唯一实例,它们就会正常工作。但是,当两个 Laravel 实例都添加到负载均衡器时,任何社交名流登录都会失败,并出现无效状态错误。
HTTP 500 内部服务器错误
Laravel\Socialite\Two\InvalidStateException
AbstractProvider->user()
/app/Http/Controllers/Auth/LoginController.php(第 108 行)
// Get google user data
$google = Socialite::driver('google')->user();
我在 Google 和 Facebook 登录时遇到了同样的问题。如果我尝试手动登录或注册新用户,我会收到 419 | 页面已过期,但当负载均衡器只有一个实例或我没有使用负载均衡器时,不会出现这些问题。
谢谢,
李。
解决方案
好的,所以我已经解决了这个问题,我重建了 .env 文件,然后剪切并粘贴到两个服务器中,然后我生成了新密钥并重新启动了应用程序服务器和负载均衡器。
我已经多次检查了这两个 .env 文件,所以要么我错过了一些东西,要么问题不可见?
无论哪种方式,它现在都在工作。
谢谢,
李。
推荐阅读
- assembly - NASM - 创建文件或目录时如何设置权限
- php - 为什么在 Windows 10 中尝试使用 PHP CLI 删除(空)目录时出现“rmdir ... Permission denied:”错误?
- python - Pandas 对两个数字之间的列进行操作
- java - 当我添加对象时,用于在 Java 中存储对象的 ArrayList 不起作用
- linux - Deployer SSH bash 未加载配置文件
- css - 带有引导程序的透明导航栏无法按预期工作
- javascript - 为什么在将条件放入其中时for循环会在浏览器中崩溃?
- c++ - 为什么编译器说我的整数变量没有被使用?
- python - __init__.py”,第 92 行,在
raise RuntimeError("需要 Python 3.5 或更高版本") - azure-data-explorer - 从应用服务访问 Azure 数据资源管理器