繁体   English   中英

Laravel:错误“页面由于不活动而过期”(419未知状态)

[英]Laravel: error “The page has expired due to inactivity” (419 unknown status)

我收到错误The page has expired due to inactivity. Please refresh and try again. The page has expired due to inactivity. Please refresh and try again. 在Laravel 5.6.39上。 在Chrome“网络标签”中说错误login - 419 unknown status

刷新页面后,我立即收到错误消息。 所以我再也看不到登录视图,然后我就被卡住了 考虑没有经验且只尝试刷新页面的普通用户。 如果它不起作用,他们会离开你的应用程序。

我可以按照以下步骤重现错误:

  • 转到登录视图
  • 输入用户名和密码,不要选中“记住我”标志
  • 等待该会话到期(出于测试目的,我将SESSION_LIFETIME设置为1分钟)
  • 点击登录按钮,我收到了这个错误

我已经阅读并尝试了最常见的原因:

  • @csrf出现在登录表单中(这是Laravel的默认身份验证)
  • 文件夹storage755但尝试使用775777
  • 试图启动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_DOMAIN=https://app.my-domain.com/将其替换为SESSION_DRIVER=cookie

在这里你可以找到我的代码(控制器,视图,路线,.env,...)https//gist.github.com/dangelion/aa7fc54ea75f7b2d6062fc79f07e04e8

我真的没有想法解决这个问题。 有些帮助吗? 谢谢

当我们更新我们的应用程序时,浏览器可能仍然使用旧文件。 如果您不清除缓存,则旧文件可以在您申请时访问问题。

在表单中添加@csrf后清除浏览器缓存,现在希望这可能有效

好吧,我遇到了同样的问题,到目前为止我所知道的,这是一个与会话相关的问题。 什么对我有用(在尝试了这么多不同的解决方案后):

SESSION_DRIVER=cookie使用SESSION_DOMAIN=null SESSION_DRIVER=cookie ,这就是全部

在我花了几个小时试图找出解决方案之后。

注意:这个问题有多种解决方案取决于您的具体情况/设置。 所以我的解决方案就是其中之一。

看起来你有缓存问题。 按照我写的顺序尝试以下步骤;

  1. 确保表单标签在表单中启动后@csrf出现@csrf ,如下所示:
 <form method="POST" action="/profile"> @csrf 
  1. 运行以下命令:

    • php工匠观点:清楚
    • php artisan route:清楚
    • php artisan cache:清楚
    • php artisan配置:清除
    • composer dump-autoload
  2. 立即在隐身浏览器窗口中查看应用。

如果它有效,请欢呼。

现在您可能认为它无效,因为您无法要求您的应用用户在隐身窗口中访问该应用。 那么,标准Web应用程序流程的工作原理如下:

  • 我们通常有三台服务器
    1. 开发
    2. 分期
    3. 生产

我们在开发服务器上开发并获取所有这些错误,只有在我们解决了所有这些问题后,我们才将其推送到登台服务器,然后我们在那里进行测试。 只有在暂存后才解决,然后我们将最终代码推送到生产服务器。

因此,在生产服务器上使用app的用户不需要做任何事情。

如果您在一台服务器上执行所有这些操作,您可能会考虑正确地执行此操作以避免这种情况。 说得通?

我希望它有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM