ThinkPHP5表单令牌刷新

时间:2023-03-09 08:39:03
ThinkPHP5表单令牌刷新

制作登录页面的时候,加入了表单令牌,账号和密码输入错误后,再登录的话,会提示表单令牌错误,

这是因为旧的令牌已经过期了,我们要处理下前端的token,修复的办法,在路由文件下加入

//刷新表单令牌,然后前端提交表单后,js调用,这里的我用的是__token__
Route::get('refresh/token',function(){
return json(['token'=>request()->token('__token__', 'sha1')]);
});

在.html文件加入隐藏域

<input type="hidden" name="__token__" value="{$Request.token}" />

然后前端表单提交后,js调用后端方法去修改token

//页面局部token刷新
function refresh()
{
$.get("{:url('@refresh/token')}", function(res){
$("[name='__token__']").val(res.token);
});
}