【问题标题】:laravel 5.6 random error "The page has expired due to inactivity"laravel 5.6 随机错误“页面因不活动而过期”
【发布时间】:2019-01-20 14:40:05
【问题描述】:

我的 Laravel 5.6 项目运行良好。

但有时当我尝试登录时突然提示

页面因不活动而过期。

有时它可以正确登录而没有任何错误。例如

  • 我转到页面 127.0.0.1:8000/login...提交登录表单并收到该错误。

  • 我刷新 127.0.0.1:8000/login 页面...提交...再次出错。

  • 我刷新了 127.0.0.1:8000/login 页面...提交,它工作正常:|

有人知道我的项目有什么问题吗?!

这个项目在我的主机上运行没有任何问题,我的表单中有{{ csrf_field }}

我已尝试清除缓存、查看、路由、配置和删除浏览器缓存/cookie 并更改 SESSION_DRIVER=array 但仍然出现错误。

更新: 我应该说的另一件事是当它正常工作并且我登录到面板时...当我提交任何表单时,我从面板中取出,我应该再次登录。

【问题讨论】:

  • 谢谢,但我设置了 session_driver=array 有时还是会出错
  • 在控制台中试试这个命令 sudo chmod -R 777 storage/ bootstrap/ 让我知道它是否能解决你的问题
  • 我将这两个文件夹的权限手动更改为 777...不起作用
  • 试试这个:php artisan serve --host=127.1.1.1 --port=8888。如果它有效,则项目缓存存在问题

标签: laravel session laravel-5.6


【解决方案1】:

最后...在 3 天糟糕之后专注于这个问题...我找到了答案,我希望它可以帮助其他人:

检查您的浏览器设置 -> cookie 并查看创建了多少 cookie 当用户登录时。

默认情况下,当用户使用名称登录时,laravel 会创建 2 个 cookie:

  1. “XSRF-TOKEN”
  2. “laravel_session”

这些都可以,但是您手动创建的其他 cookie 或其他已安装的软件包创建的会导致此问题。

我使用的是 eloquent-viewable 包,每次登录时它都会创建一个 cookie。

我删除了这个包,然后一切正常:)

【讨论】:

    【解决方案2】:

    对于 localhost 开发,在 Http 文件夹中打开 kernel.php 并评论这一行:

    \App\Http\Middleware\VerifyCsrfToken::class,
    

    laravel 的 csrf 保护在 localhost 上无法正常工作。我已经尝试了一切。只是评论一下,这是一个非常烦人的问题。

    【讨论】:

    • 我这样做了,但是现在当我点击登录按钮时,它会执行一些过程并刷新登录页面,但什么也没有发生。
    • 那是另一个问题。我没有使用 laravel 的认证系统。我不应该对此提出任何建议。但请尝试清除所有缓存和 cookie。
    猜你喜欢
    • 2019-07-11
    • 2018-10-01
    • 2019-08-09
    • 2018-09-04
    • 2018-08-31
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多