model = lm('account', 'Commons'); } function publish($identity) { $token = $this->getToken(); $this->saveToken($identity, $token); // echo 'tokne'; $_SESSION['globalToken'] = $token; return $token; } function refreshToken() { return isset($_SESSION['globalToken']) ? $_SESSION['globalToken'] : ''; } function check($token) { $user = lm('account_detailed', 'Commons')->where('token', $token)->first(); if ($user) { return $user; } return 0; } function doLogout() { $_SESSION['uinfo'] = null; $_SESSION['globalToken'] = null; } /** * 登录操作 * * @param $token * @return int * @throws \Exception */ function doLogin($token) { $user = $this->check($token); $userInfo = $this->model->join('account_detailed', 'account.identity', '=', 'account_detailed.account_identity')->where('account.identity', $user->account_identity)->get(); if (empty($userInfo) || !$user) { return false; } lm('account_detailed', 'Commons')->updateLoginStatus($user->identity); $userInfoArray = $userInfo->toArray(); \InitSess::init()->iniSession($token); $_SESSION['uinfo'] = $userInfoArray[0]; return $userInfoArray; } /** * 获取token * * @return string */ public function getToken() { $enc = GenEncryption(); $time = time(); $token = substr(uniqid($enc . $time), 0, 35); return $token; } /** * 更新token记录 * * @param $identity * @param $token * @throws \Exception */ public function saveToken($identity, $token) { lm('account_detailed', 'Commons')->where('account_identity', $identity)->update(array('token' => $token)); $accountToken = lm('account_token', 'Commons')->where('account_identity', $identity)->first(); // $data = ['last_time' => date('Y-m-d H:i:s'), 'effective_time' => strtotime('now') + 3600]; $data = ['last_time' => date('Y-m-d H:i:s'), 'effective_time' => time()]; if ($accountToken) { lm('account_token', 'Commons')->where('account_identity', $identity)->update($data); } else { // echo 567; $data['account_identity'] = $identity; lm('account_token', 'Commons')->insert($data); } } /** * @param $token * @return mixed * @throws \Exception */ public function getAccountInfo($token) { $userInfo = lm('account_detailed', 'Commons')->join('account', 'account_detailed.account_identity', '=', 'account.identity')->where('account_detailed.token', $token)->first(); \InitSess::init()->iniSession($token); return $userInfo; } /** * @param $token * @return mixed * @throws \Exception */ public function getAgentInfo($token) { $userInfo = lm('agent_detailed', 'Commons')->where('agent_token', $token)->first(); return $userInfo; } }