我在Laravel 5.6.39上收到错误The page has expired due to inactivity. Please refresh and try again.
。在Chrome中,“网络标签”显示错误login - 419 unknown status
刷新页面后,我立即收到错误消息。因此,我再也看不到登录视图,然后被卡住。考虑没有经验的普通用户,仅尝试刷新页面。如果不起作用,他们将离开您的应用。
我可以按照以下步骤重现该错误:
SESSION_LIFETIME
设置为1分钟)我已经阅读并尝试了最常见的原因:
@csrf
出现在登录表单中(这是Laravel的默认身份验证)storage
具有755
,但也尝试了775
和777
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan config:cache
php artisan key:generate
SESSION_DRIVER=file
,但在生产环境中,我也尝试用SESSION_DRIVER=cookie
替换为SESSION_DOMAIN=https://app.my-domain.com/
在这里您会找到我的代码(控制器,视图,路线,.env等): https://gist.github.com/dangelion/aa7fc54ea75f7b2d6062fc79f07e04e8
我真的不知道要解决这个问题。 有帮助吗?谢谢
答案 0 :(得分:0)
当我们更新应用程序时,浏览器可能仍会使用旧文件。如果您不清除缓存,则旧文件在您申请时可能会遇到问题。
在表单中添加Select X, Y,
coalesce(z, <something else>) as z
之后,清除浏览器缓存,现在希望它可以工作
答案 1 :(得分:0)
好吧,我遇到了同样的问题,到目前为止,这是与会话相关的问题。为我工作的是(尝试了许多不同的解决方案之后):
SESSION_DRIVER=cookie
和SESSION_DOMAIN=null
就是
我花了近几个小时试图找出解决方案。
N.B:此问题有多种解决方案,具体取决于您的特定案例/设置。所以我的解决方案是其中之一。
答案 2 :(得分:-1)
您似乎遇到了缓存问题。尝试按照我写的顺序步骤;
@csrf
出现在表单标签在表单中后立即出现,如下所示:<form method="POST" action="/profile"> @csrf
运行以下命令:
现在检查应用程序在隐身浏览器窗口中。
如果它有效,欢呼。
现在,您可能会认为它无效,因为您无法要求应用程序的用户在隐身窗口中访问该应用程序。嗯,这里是多么标准的Web应用程序的作品:
我们开发并在开发服务器上获得所有这些错误,只有解决了所有这些问题之后,我们才将其推送到登台服务器,然后在此处进行测试。只有在解决所有暂存问题之后,我们才将最终代码推送到生产服务器。
因此,在生产服务器上使用应用程序的用户无需执行任何操作。
如果要在一台服务器上执行所有这些操作,则可以考虑适当地执行此操作以避免出现这种情况。有道理吗?
我希望能帮上忙。