【发布时间】:2016-11-04 17:47:40
【问题描述】:
我正在使用 Laravel 5.3 和 laravelcollective/html 表单助手。
当我提交表单时,如果验证失败,它会将您带回到使用 return redirect()->back()->with 的同一表单
然后如果我再次重新提交相同的表单,我将得到一个 TokenMismatchException,发生的情况是重新加载表单后 csrf 令牌没有刷新。
关于如何刷新令牌的任何想法?
11/07 更新
要打开表单,我使用以下命令:
{!! Form::open(['url'=>'/user/create', 'method'=>'post', 'id'=>'create']) !!}
自动添加令牌字段。
但我也尝试过手动添加令牌,如下所示:
{!! Form::open(['url'=>'/user/create', 'method'=>'post', 'id'=>'create']) !!}
{!! Form::token() !!}
这里的token实际上是创建了两次,两个token是一样的。
【问题讨论】:
-
laravel 在重定向时不刷新令牌可能有多种原因。你能分享你表单的代码sn-p吗?您也可以尝试添加令牌的 laravel 方式,即 {{ Form::token(); }} 而不是自己将其添加为隐藏的表单字段。如果有帮助,请告诉我。
-
谢谢Shuja,我已经根据您的建议更新了问题,但问题仍然存在
标签: php laravel-5 csrf laravelcollective