网站前端的信息中是不安全的,所以后端需要时刻检查前端的信息,比如信息是否来自本网站的页面。这就需要表单令牌了。当然您可以说检查url,但是可以伪造header啊。
而在tp5的官方文档中,表单令牌的这部分写的有些不严谨,在此提出个人的小建议。
在表单令牌的定义和使用中,分为2种:验证规则和验证器。验证器中没有问题的。
//php
protected $rule=[
'name'=>'required|token'
];
//前端
<input type="hidden" name="__token__" value="{$Request.token}" />
但是在验证规则中,则官方文档有些小瑕疵。
//前端
<input type="hidden" name="__token__" value="{$ Request.token}" />
而PHP代码在官方文档中少了一部分。
<?php
$name = $this->request->post('name');//接收值
$this->validate(["__token__"=>$token,'name'=>$name],['name'=>'token']);//验证值,在规则中验证表单令牌,表单令牌不是单独存在,单独验证的,需要依附于其他数据验证
?>
验证规则需要自己写令牌信息的接收。这是与验证器不同的地方,也是官方文档遗漏的地方。