Laravel 中的身份验证在特定环境中部署后一段时间不起作用

问题描述 投票:0回答:1

我有 2 个使用 Laravel 构建的 Web 平台,它们在开发环境和本地环境中都运行得很好。

问题在于,当我作为服务提供商将这些应用程序部署在云基础设施上后,这些应用程序的工作时间大约为 1 / 2 小时,有时甚至更短,然后,在每次登录请求时,它都会将我重定向回登录页面,即使登录尝试的凭据是正确的。

在登录请求和重定向响应之间,我看到空白视图,其中包含存储在会话中的 XSRF 令牌,但仅持续几毫秒。

为了更清楚地了解问题,我需要为您提供完整的上下文,因此我将简要记录应用程序运行的基础设施和架构

应用程序使用以下技术:

  • Laravel(以老式整体风格构建的网络平台)v10
  • MariaDB v10.7.5
  • Redis缓存数据库v.6.2.7
  • Melisearch v0.27.2

每一项技术都有一个 Docker 容器。 traefik Docker 网络促进了它们之间的通信。应用程序的工作原理如下图所示:

application arhitecture

这些是我使用的一些环境配置变量,我认为它们可能与问题相关:

  • 其中一个平台如下:
CACHE_DRIVER: "redis"
QUEUE_CONNECTION: "redis"
SESSION_DRIVER: "redis"
  • 其他平台都是默认的:
💡 同样对于第二个 Web 平台,我没有配置 Redis 和 Melisearch 服务,我只为应用程序和数据库运行 2 个 Docker 容器。
CACHE_DRIVER: "file"
QUEUE_CONNECTION: "sync"
SESSION_DRIVER: "file"

可以执行以下操作来暂时使应用程序运行:

  • 通过 ssh 进入 VPS 并手动重新启动容器
  • 清除浏览器存储中的以下 cookie

cookie one

cookie nr. 2

💡 请注意,开发环境(Web 应用程序可以正常运行的环境)位于自托管和维护的服务器上,该服务器顶部还有 DNS、CDN 和反向代理提供商

其他人遇到过这种奇怪的行为吗?如果是的话是什么原因造成的以及如何解决?

php laravel deployment vps provisioning
1个回答
0
投票

每次部署花费的时间不同,这一事实让我认为配置可能会被缓存,并且会在 x 小时后耗尽。无论如何,我肯定会检查任何与 chache 相关的命令,例如

php artisan optimize

另外,你配置了CORS中间件吗?我在部署时遇到了类似的问题。

© www.soinside.com 2019 - 2024. All rights reserved.