2、如果使用 session()函数调用或者赋值,不会出问题,会自动加上 prefix 。如果 $_SESSION混用,而且没有增加 prefix就会找不到 session。
3、3.23的 tokenbuild.php文件修改后如下:
private function getToken(){
$tokenName = $this->config['token_name'];
$tokenType = $this->config['token_type'];
$session_Token = session($tokenName);
if (!isset($sess_Token)) {
$session_Token = [];
}
// 标识当前页面唯一性
$tokenKey = md5($_SERVER['REQUEST_URI']);
if (isset($session_Token[$tokenKey])) {
// 相同页面不重复生成session
$tokenValue = $session_Token[$tokenKey];
} else {
$tokenValue = is_callable($tokenType) ? $tokenType(microtime(true)) : md5(microtime(true));
//赋值
session($tokenName.'.'.$tokenKey,$tokenValue);
//$_SESSION[$tokenName][$tokenKey] = $tokenValue;
if (IS_AJAX && $this->config['token_reset']) {
header($tokenName . ': ' . $tokenKey . '_' . $tokenValue);
}
//ajax需要获得这个header并替换页面中meta中的token值
}
return [$tokenName, $tokenKey, $tokenValue];
} 最佳答案