'该用户不存在', self::ERR_PASSWORD => '用户名或密码错误', self::ERR_TOKEN => 'token解析失败', self::EMPTY_ROLE => '当前用户没有分配角色', self::ERR_CLOSED => '该用户被禁用', self::ERR_PWD => '旧密码错误', self::EMPTY_HEADIMG => '请选择头像', self::ERR_MOBILE => '手机号格式错误', self::ERR_SAMEPWD => '新密码不能与旧密码相同' ]; //后台管理员控制器 protected $validate = null; //定义管理员模型 protected $model = null; //定义管理员模型 protected $roleModel = null; public function initialize() { parent::initialize(); $this->model = new model(); $this->validate = new AdminValidate(); $this->roleModel = new RoleModel(); } /** * 后台登录接口 */ public function login() { //获取输入数据 $inputData = $this->request->param(['username', 'password']); //验证器验证 $this->commonValidate(__FUNCTION__,$inputData); $adminInfo = $this->model->getInfoByUsername($inputData['username']); if (empty($adminInfo)) { return $this->msg(self::EMPTY_ADMIN, self::ERROR[self::EMPTY_ADMIN]); } if ($inputData['password'] != $adminInfo['password']) { return $this->msg(self::ERR_PASSWORD, self::ERROR[self::ERR_PASSWORD]); } if ($adminInfo['status'] == 1) { return $this->msg(self::ERR_CLOSED, self::ERROR[self::ERR_CLOSED]); } unset($adminInfo['password']); $login_token = $this->jwt->getToken($adminInfo); Cache::set('api-info',$adminInfo,300); $data = [ 'login_token' => $login_token, 'exp' => Env::get('jwt_config.exp'), 'need_update_pwd' => $inputData['password'] == md5('Aa-1221') ? 1 : 0 ]; return $this->msg(200, '登录成功', $data); } /** * 获取管理员基本信息 */ public function info() { $role = $this->roleModel->getInfo($this->adminInfo); if (empty($role)) { return $this->msg(self::EMPTY_ROLE, self::ERROR[self::EMPTY_ROLE]); } $data = [ 'roles' => [$role['role_name'] ?? $role['name']], 'name' => $this->adminInfo['username'], 'avatar' => $this->adminInfo['avatar'] ]; return $this->msg(200, '获取用户信息成功', $data); } /** * 获取用户所有权限 */ public function getAuth() { $data = [ 'auth_list' => $this->adminInfo['auth_id_list'] ]; return $this->msg(200, '获取权限成功', $data); } /** * 退出登录 */ public function logout() { if (!Session::has('signed_in') || !Session::get('signed_in')) { return success('操作成功'); } $sso = new SSOClient(); $access_token = Session::get('access_token'); if (empty($access_token)) { return error('请选登录'); } $result = $sso->notifySSOServerSigninOut($access_token, Session::get('uc_sessid')); if (empty($result)) { return error('操作失败'); } if (0 != $result['errno']) { return error($result['errmsg']); } Session::clear(); return success('操作成功'); } /** * 管理员列表 */ public function list(){ } }