【发布时间】:2018-12-05 20:54:05
【问题描述】:
我在 Laravel 中遇到问题。当使用 post 方法一遍又一遍地提交表单时,有时我会收到错误并看到与 CSRF 相关的过期错误 有谁知道我该如何管理这个不在站点中显示而不是重定向到其他任何页面的错误?
【问题讨论】:
-
似乎您在发布表单数据时没有发送“csrf”令牌。
我在 Laravel 中遇到问题。当使用 post 方法一遍又一遍地提交表单时,有时我会收到错误并看到与 CSRF 相关的过期错误 有谁知道我该如何管理这个不在站点中显示而不是重定向到其他任何页面的错误?
【问题讨论】:
Laravel 可以轻松保护您的应用程序免受跨站请求伪造 (CSRF) 的侵害。
只需在表单中添加 @csrf Blade 指令即可避免出现 csrf 令牌错误。
<form method="POST" action="/profile">
@csrf
...
</form>
指令放了这样的东西
<input type="hidden" name="_token" value="CzK6peomC6Pnnqdm4NsxpdGSH6v1evDnbN12oL" >
在此处https://laravel.com/docs/5.6/csrf 的 laravel 文档中了解更多信息
关于令牌的到期,我认为您可能希望以这种方式处理错误https://gist.github.com/jrmadsen67/bd0f9ad0ef1ed6bb594e
此外,还有一个包可以帮助表单保持清醒。 https://github.com/GeneaLabs/laravel-caffeine
希望对你有帮助。
【讨论】:
Laravel 5 使用 Blades 模板,很简单。 在你的刀片文件中添加 csrf 令牌
{{ csrf_token() }}
如果您使用的是 Laravel 5.6,那么您需要在表单代码中添加类似的内容
@csrf
详细查看:CSRF Laravel
【讨论】: