该页面因不活动而过期。为什么?

时间:2018-07-05 17:06:07

标签: laravel windows-10 homestead

我有问题。我有2台计算机,第一台是Ubuntu,第二台是Windows10。两台计算机都有一堆Vagrant + VirtualBox + Homestead。在装有Ubuntu的计算机上,一切正常,在装有Windows 10的计算机上,当我尝试向服务器发送表单时,得到状态419和消息:

该页面因不活动而过期。请刷新,然后重试。

每次刷新页面时,CSRF令牌都会更新。这是在两台PC上的干净Homestead环境中全新安装的Laravel + php artisan make:auth php artisan migration (默认表)。会话目录的权限已满,用户无业游民,组无业游民。会话文件已创建。 .env 文件完全相同(标准),只是数据库名称不同。可能是什么问题呢?我真的需要你的帮助!

关于类似问题的所有建议都没有帮助我。缓存视图,配置等。我清除了,重新生成了密钥。浏览器缓存已清除,Cookie已检查-当场。两台计算机之间的唯一区别是操作系统,但是当Laravel在Homestead虚拟机上时,这有关系吗?

2 个答案:

答案 0 :(得分:0)

从您的视频中,将.env文件中的 APP_NAME 更改为“ Laravel”以外的其他名称。

我敢打赌,您还有其他运行在具有相同APP_NAME的相同本地URL下的网站。

更改APP_NAME会更改 config / sessions.php

中的会话cookie名称。
'cookie' => env(
    'SESSION_COOKIE',
    str_slug(env('APP_NAME', 'laravel'), '_').'_session'
),

您可以通过在.env文件中设置SESSION_COOKIE变量来手动覆盖cookie名称,或者让其回退到使用应用名称(第二个参数)的计算得出的段。

由于某些原因,谷歌浏览器是唯一的浏览器。我花了将近一年的时间试图解决这个问题,这就是解决方案!

答案 1 :(得分:0)

  • app / Http / Middleware / VerifyCsrfToken.php
  • 中添加路由条目

受保护的$ except = [                     “您的/路线”                 ];

如果您已经已经在表单中包含CSRF令牌。然后,您可能会由于在表单中缓存数据而出现错误页面。打开终端/命令提示符,然后在项目根目录中运行这些命令。

  1. php artisan cache:clear
  2. php artisan config:clear
  3. php artisan route:clear
  4. php artisan view:clear

还要尝试清除浏览器缓存以及运行这些命令。

  • 确保将文件 app / config / session.php 中的会话安全值设置为null。

    'secure'=> env('SESSION_SECURE_COOKIE',false),