有人说 TOKEN 在3.2中无法使用,就研究了一下,希望对大家有帮助。

无法正常原因:

原来的tags.php 被迁移到以下文件

ThinkPHP\Mode\common.php

并且在:

'template_filter'=> array(

'Behavior\ContentReplaceBehavior', // 模板输出替换

),

只加了一个行为,对比3.1少了 TokenBuildBehavior

所以

方法1:只要我们在Application\Common\Conf创建 tags.php文件

加入:

return array(

'view_filter' => array(

'Behavior\TokenBuildBehavior', // 表单令牌

),

);

方法2:在ThinkPHP\Mode\common.php 加入

'Behavior\TokenBuildBehavior', // 表单令牌

 

 

//'配置项'=>'配置值'

'view_filter' => array('Behavior\TokenBuildBehavior'),

'TOKEN_ON' => true, // 是否开启令牌验证 默认关闭

'TOKEN_NAME' => '__hash__', // 令牌验证的表单隐藏字段名称,默认为__hash__

'TOKEN_TYPE' => 'md5', //令牌哈希验证规则 默认为MD5

create的时候会自动进行令牌验证 

 

  1. if (!$User->autoCheckToken($_POST)){
  2.  // 令牌验证错误
  3.  }手动进行表单验证
  4. C('TOKEN_ON',false);取消表单验证