setError('token不能为空,请重新登录'); return false; } $data = Token::get($token); if (!$data) { $this->setError('token无效,请重新登录'); return false; } $userId = intval($data['user_id']); if ($userId > 0) { $user = \app\model\admin\User::with(['avatar_file'])->findOrEmpty($userId); if (!$user) { $this->setError('账号不存在,请重新登录'); return false; } //用户状态 1正常 2禁用 if ($user['status'] != 1) { $this->setError('账号被禁用,请联系管理员'); return false; } $this->_user = $user; $this->_isLogin = true; $this->_token = $token; return true; } else { $this->setError('账号不存在,请重新登录'); return false; } } /** * 退出登录 * @return bool */ public function logout() { if (!$this->_isLogin) { $this->setError('你没有登录'); return false; } //设置登录标识 $this->_isLogin = false; //删除Token Token::delete($this->_token); return true; } /** * 获取登录用户信息 */ public function getUserInfo() { $data = $this->_user->toArray(); $allowFields = $this->getAllowFields(); $userInfo = array_intersect_key($data, array_flip($allowFields)); $userInfo['avatar_file'] = $data['avatar_file']; $userInfo = array_merge($userInfo, ['token' => $this->_token]); return $userInfo; } /** * 获取允许输出的字段 * @return array */ public function getAllowFields() { return $this->allowFields; } /** * 获取User模型 * @return User */ public function getUser() { return $this->_user; } /** * 判断是否登录 * @return boolean */ public function isLogin() { if ($this->_isLogin) { return true; } return false; } /** * 获取当前Token * @return string */ public function getToken() { return $this->_token; } }