php - Laravel 419 | 会话已过期
问题描述
我在登录时遇到了 Laravel 会话问题。
1.是的,我的表单中确实包含一个 CSRF 令牌。
2.是的,令牌没有过期。
3.是的,SESSION_SECURE_COOKIE 设置为 false。
我使用redis
as mySESSION_DRIVER
并且expiration time
设置为120 minutes
.
最困扰我的是“有时有效,有时无效”。
如果我要打开一个隐身标签并尝试登录,10/20 次它会毫无问题地工作,但其他 10 次会导致
[419 | 会话过期]错误
.
我的环境是CentOS
,Nginx
。
没有任何代理,我也没有使用 Cloudflare。
我真的大吃一惊,因为这种行为并不一致,它实际上是随机行为,导致登录成功或不成功。
有谁知道可能是什么情况?
解决方案
要解决此错误,您首先需要将以下命令之一插入到表单标签中。
@csrf OR {{ csrf_field }}
如果您的问题没有解决,请执行以下操作:(请注意,上述命令之一必须在表单标签中)
1.将以下命令之一插入表单标签@csrf OR {{ csrf_field }}
2.打开.env文件,将值更改为SESSION_DRIVER
节中的“文件”。
3.然后你应该重置laravel缓存。在终端中输入以下命令
php artisan view:clear
php artisan route:clear
php artisan cache:clear
php artisan config:cache
或者php artisan optimize
4.在最后一步中,从服务中拔下项目并再次单击 php artisan serve
我希望你的问题得到解决
推荐阅读
- r - 过滤表以仅保留非冗余组
- ffmpeg - 将 libavcodec AVpacket 呈现时间设为 0 的原因是什么?
- panel-data - 为什么 plm 中的“双向”不会对组和时间产生固定的影响?
- c# - 使用 DbSet 时是否也将主键属性标记为已修改
.Update() 方法? - git - 如果文件应该被删除,“git rm”是对“我们删除”的规范响应吗?
- hadoop - 作为主目录的所有者,无法执行 HDFS 文件系统命令
- amazon-web-services - 创建 ECS 集群错误:输入中的未知参数:“tags”,必须是以下之一:clusterName
- javascript - 在选择下拉列表之前禁用按钮提交
- javascript - 显示 If 语句的结果
- django - django select_related 无法解析关键字