我有:
刀片
UITabBarController
由控制器接收:
<form class="form-horizontal was-validated" method="POST" action="{{ route('account.applications.index')}}">
{{ csrf_field() }}
{{-- yadda yadda yadda --}}
<div class="form-group row">
<label class="col-sm-2 col-form-label"> </label>
<div class="col-sm-10">
<input id="application_type" type="hidden" name="application_type" value="{{ Request::get('application') }}">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
上面的代码工作正常,除了... CSRF功能,我检查了是否可以从请求中检索CSRF值。
但是,一旦我的交易完成并重定向到我想要的页面,如果我按F5键,它将重新提交表单,这将导致CSRF不匹配,但是在我的情况下,它没有。
是否有打开CSRF验证的特定方法?
答案 0 :(得分:1)
迟到了聚会,但我相信您的CSRF检查工作正常。
据我了解,Laravel中使用的VerifyCsrfToken
中间件只是指示是否应在响应上设置XSRF-TOKEN,而{{ csrf_field() }}
是获取{{1 }}。由于您要按F5重新提交表单,因此我相信$session->token()
现在指向您的新会话令牌cookie,并通过了检查。
您不是通过AJAX / Axios提交表单,因此Laravel应该处理整个请求,其中一部分包括从当前会话验证CSRF令牌,而不是从验证您的CSRF令牌的保存/序列化版本上一届会议。