表單令牌
驗證規(gui)則(ze)支持對表單(dan)的(de)令牌驗證,首先需要在你的(de)表單(dan)里面(mian)增(zeng)加下面(mian)隱藏(zang)域:
<input type="hidden" name="__token__" value="{$Request.token}" />
或者
{:token()}
然后在你的驗證規則中,添加token驗證(zheng)規則即可(ke),例如(ru),如(ru)果(guo)使用的是(shi)驗證(zheng)器(qi)的話,可(ke)以(yi)改(gai)為:
protected $rule = [
'name' => 'require|max:25|token',
'email' => 'email',
];
如果你的令牌名稱不是__token__,則表單需要改為:
<input type="hidden" name="__hash__" value="{$Request.token.__hash__}" />
或者:
{:token('__hash__')}
驗證器中需(xu)要改為:
protected $rule = [
'name' => 'require|max:25|token:__hash__',
'email' => 'email',
];
如果需要自定義令牌生成規則,可以調用Request類的token方法,例如:
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function index()
{
$token = $this->request->token('__token__', 'sha1');
$this->assign('token', $token);
return $this->fetch();
}
}
然后(hou)在(zai)模(mo)板(ban)表單中使用:
<input type="hidden" name="__token__" value="{$token}" />
或者不需要在控制(zhi)器寫任(ren)何代碼,直(zhi)接在模板中使(shi)用(yong):
{:token('__token__', 'sha1')}
文檔最后更新時間:2018-04-26 10:48:34
← 靜態調用
未解決你的問題?請到「問答社區」反饋你遇到的問題
