首页 > 解决方案 > Laravel 419 | 会话已过期

问题描述

我在登录时遇到了 Laravel 会话问题。

1.是的,我的表单中确实包含一个 CSRF 令牌。

2.是的,令牌没有过期。

3.是的,SESSION_SECURE_COOKIE 设置为 false。

我使用redisas mySESSION_DRIVER并且expiration time设置为120 minutes.

最困扰我的是“有时有效,有时无效”。

如果我要打开一个隐身标签并尝试登录,10/20 次它会毫无问题地工作,但其他 10 次会导致

[419 | 会话过期]错误

.

我的环境是CentOSNginx

没有任何代理,我也没有使用 Cloudflare。

我真的大吃一惊,因为这种行为并不一致,它实际上是随机行为,导致登录成功或不成功。

有谁知道可能是什么情况?

标签: phplaravelnginxsession

解决方案


要解决此错误,您首先需要将以下命令之一插入到表单标签中。

@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

我希望你的问题得到解决


推荐阅读