我在Laravel有问题。当使用post方法和somtime反复提交表单时,出现错误,并看到与CSRF相关的过期错误 有人知道如何管理不在网站中显示而不是重定向到其他页面的错误吗?
答案 0 :(得分:1)
Laravel可轻松保护您的应用程序免受跨站点请求伪造(CSRF)的攻击。<br/>
只需在表单内添加export const MY_NATIVE_FORMATS = {
fullPickerInput: {year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', hour12: false},
datePickerInput: {year: 'numeric', month: 'numeric', day: 'numeric', hour12: false},
timePickerInput: {hour: 'numeric', minute: 'numeric', hour12: false},
monthYearLabel: {year: 'numeric', month: 'short'},
dateA11yLabel: {year: 'numeric', month: 'long', day: 'numeric'},
monthYearA11yLabel: {year: 'numeric', month: 'long'},
};
@NgModule({
providers: [
{provide: OWL_DATE_TIME_FORMATS, useValue: MY_NATIVE_FORMATS},
]
})
刀片指令,以避免出现csrf令牌错误。
@csrf
指令将类似这样的内容
<form method="POST" action="/profile">
@csrf
...
</form>
在laravel文档中https://laravel.com/docs/5.6/csrf
详细了解关于令牌的到期时间,我认为您可能希望以这种方式处理错误https://gist.github.com/jrmadsen67/bd0f9ad0ef1ed6bb594e
此外,还有一个软件包可以帮助表单保持清醒状态。 https://github.com/GeneaLabs/laravel-caffeine
我希望有帮助。
答案 1 :(得分:0)
使用Blades模板的Laravel 5,非常简单。 在刀片文件中添加csrf令牌
{{ csrf_token() }}
如果您使用的是Laravel 5.6,则需要在表单代码中添加类似的内容
@csrf
详细检查以下内容:CSRF Laravel