## setToken('令牌名称', '令牌生成规则') >[info] 从`1.3.1`开始支持 从`1.3.1`开始,用ZBuilder生成的表单将默认带有表单令牌,能起到`CSRF`防御作用。 ### 使用令牌验证 在你的验证规则中,添加`token`验证规则即可,例如,如果使用的是验证器的话,可以改为: ``` protected $rule = [ 'name' => 'require|max:25|token', 'email' => 'email', ]; ``` 或者 ``` protected $rule = [ 'name' => 'require|max:25', 'email' => 'email', '__token__' => 'token', ]; ``` ### 全局设置 如果所有表单都不需要开启表单令牌,可以在 `\application\extra\zbuilder.php` 修改`form_token_name`为`false`。 ### 单独关闭表单令牌 如果仅需要在某个表单关闭表单令牌,可以在创建ZBuilder表单时,这样设置 ``` ->setToken(false) ``` ### 修改表单令牌名称 如果你的令牌名称不是`__token__`,可以自己自定义,比如: ``` ->setToken('__hash__') ``` 那么验证器规则就需要修改为: ``` protected $rule = [ 'name' => 'require|max:25|token:__hash__', 'email' => 'email', ]; ``` 或者 ``` protected $rule = [ 'name' => 'require|max:25', 'email' => 'email', '__hash__' => 'token:__hash__', ]; ``` ### 自定义令牌生成规则 如果需要自定义令牌生成规则,则直接设置规则名称,如: ``` ->setToken('', 'sha1') ``` 或者同时自定义名称和生成规则 ``` ->setToken('__hash__', 'sha1') ```