laravel 5.8.7 页面过期(419)

Posted

技术标签:

【中文标题】laravel 5.8.7 页面过期(419)【英文标题】:laravel 5.8.7 Page expired (419) 【发布时间】:2019-08-15 02:07:52 【问题描述】:

我正在从表单提交一个 POST 请求,它显示 419 |页面已过期。

Blade.php

<form action="<?php echo action('TestsController@store'); ?>" method="post">

路线:

Route::resource('tests', 'TestsController');

控制器:

public function store(Request $request) 
        echo "something something";

【问题讨论】:

您是否在表单中添加了@csrf 仅供参考,如果您在.blade.php 文件中,&lt;?php echo action('TestsController@store'); ?&gt; 可以写成 action('TestsController@store') 我是 laravel 新手,我不知道 @csrf.Thanks (y) ***.com/a/53253184/2693543 【参考方案1】:

在我的情况下,另一个管理员用户使用 OTP 在我的自定义管理面板中登录

所以他无法使用这个新的 laravel/ui 身份验证登录/注册默认页面登录

【讨论】:

【参考方案2】:

就我而言,我通过为我的域设置 SSL 解决了这个问题。我已经尝试了所有的解决方案,但他们没有工作。然后我为域设置了 SSL,它解决了问题。

【讨论】:

【参考方案3】:

正如Levente 所说,首先尝试将@csrf 放入表单中。如果这不起作用,请参阅此thread。这是这个问题的副本。

【讨论】:

您可以通过登录或注册页面轻松重现此错误。不要做任何事情,也许超过 30 分钟。然后当你点击提交时,419 Page Expired 就会出现。为了可用性,你如何告诉一个简单的用户刚刚发生了什么以及如何解决它?【参考方案4】:

Laravel 具有内置的 CSRF 保护。 Check out the official documentacion.

@csrf 添加到您的表单中。

<form action="<?php echo action('TestsController@store'); ?>" method="post">
    @csrf
</form>

【讨论】:

以上是关于laravel 5.8.7 页面过期(419)的主要内容,如果未能解决你的问题,请参考以下文章

登录laravel后页面刷新时419页面过期错误

419 页面使用 laravel sanctum 过期

419 页面在 laravel 5.7 中过期

Laravel CSRF - 419 页面因向其他网站的发布请求而过期

laravel 5.7.15 419 抱歉,您的会话已过期。请刷新并重试

在 laravel 5.7 中偶尔会出现 419 错误