/** * 获取 token. * * @access public * @return void */ public function getToken() { // 生成 token 并写入缓存. $token = Token::generate(C('var_app_id')); $value = [C('var_locate_city') => C('default_locate_city')]; // 写入默认定位城市. $this->setRequestToken($token); $this->setTokenData($value, NULL); $value[C('var_app_token')] = $token; $this->setAjaxData(Message::SUCCESS, Message::get(Message::SUCCESS), $value)->myAjaxReturn(); }
/** * 重新生成 token. * 将数据写入该 token 缓存, 并返回新的 token. * * @access protected * @param array $data 待写入的数据. * @param string $token 旧 token, 默认 NULL, 叵有值, 表示删除旧 token 并把旧 token 的值写入新 token 中. * @return string 返回生成的新 token. */ protected function reNewToken(array $data, $token = NULL) { $oldData = []; if (NULL !== $token) { $oldData = S($token); $oldData = NULL === $oldData || FALSE === $oldData ? [] : $oldData; S($token, NULL); // 删除旧 token. } foreach ($oldData as $k => $v) { // 旧数据项在新数据中不存在, 才加入新数据 if (!isset($data[$k])) { $data[$k] = $v; } } $this->_token = $newToken = Token::generate(C('var_app_id')); S($newToken, $data); return $newToken; }