【问题标题】:Laravel 5.8.11 getting 419 page expired all forms affectedLaravel 5.8.11 获得 419 页已过期所有表单都受影响
【发布时间】:2019-10-14 19:19:33
【问题描述】:

从 Laravel 5.5 开始升级到 5.8(当前版本 5.8.11)。问题是,当我在本地测试一切正常时,当我将项目上传到我的主机(专用服务器/共享主机都尝试过)时,我的 419 页面已过期,但这并不是登录所独有的,所有表单都受到影响并且给 419 页面过期。

5.5 -> 5.6

update dependency: "fideloper/proxy": "^4.0", updated all other dependencies to latest versions
update php unit: 7
removed php artisan optimize from composer.json

5.6 -> 5.6.30 没有变化

5.6 -> 5.7 在 composer.json 中将 laravel/framework 依赖更新为 5.7 更改资产目录

From resources/assets/js/* to resources/js/*
From resources/assets/sass/* to resources/sass/*

更新 mix.js

mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css');

5.7 -> 5.8 在 composer.json 中更新 laravel/framework 依赖到 5.8

创建了全新的 5.8 安装并将文件移动到其中,目前仅移动我为创建(制作 2 个版本 5.5 和 5.8)而编辑的文件,但这需要一些时间。

生成的新应用密钥(无变化) 将默认会话域设置为我的域(无更改) 在 Firefox 和 chrome + 隐身模式下测试,看看缓存会话是否有问题

运行以下命令:

composer dump-autolaod
php artisan cache:clear
php artisan config:cache
php artisan route:cache

所有表单都有 csrf_field(),也存在于 head 中

什么可能导致这个问题?

【问题讨论】:

    标签: laravel session csrf


    【解决方案1】:

    所以对我有用的是创建一个新的 laravel 5.8 安装并将其文件复制到我现有的项目中并跳过它想要覆盖的任何文件,运行 composer update 并完成。所以我假设我在某个地方丢失了一个文件。

    这可能不是最好的解决方案,但这对我有用。

    【讨论】:

      【解决方案2】:

      这通常是由于会话无法存储或由于存储了旧的 cookie 而造成的。

      因此,请确保为存储会话的存储目录授予适当的权限。

      如果您使用的是基于文件的会话。可以用

      验证

      is_writable(config('session.files'))

      您可以按照提出的其他问题中提供的解决方案进行操作,但它适用于 Laravel 5.5。

      "The page has expired due to inactivity" - Laravel 5.5

      【讨论】:

      • 谢谢你会测试并用结果更新问题
      猜你喜欢
      • 2020-05-22
      • 2022-06-11
      • 1970-01-01
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 2020-01-25
      • 1970-01-01
      • 2021-09-07
      相关资源
      最近更新 更多