service = LoginService::getInstance(); } /** * 登录 * @Method POST * @return JsonResponse * @throws \Exception */ public function login() { $this->insertField = [ 'account', 'password' ]; $param = $this->checkRequiredFields(request()->post()); return jok( $this->service->login($param['account'], $param['password']), '登录成功' ); } /** * 注册 * @Method POST * @return JsonResponse * @throws \Exception */ public function register() { $this->insertField = [ 'phone', 'password', 'email', 'code' ]; $param = $this->checkRequiredFields(request()->post()); return jok( $this->service->register($param['phone'], $param['password'], $param['email'], $param['code']), '登录成功' ); } /** * 退出登录 * @Method POST * @throws \Exception */ public function logout(): JsonResponse { return jok( $this->service->logout(), '退出成功' ); } /** * 续签 token * * 前端拦截器在 401 时调用,此时 token 已过期,所以只能放在免登录组里, * 由 LoginService::refresh 自己校验签名与 Redis 会话。 * @Method POST * @throws \Exception */ public function refresh(): JsonResponse { return jok( $this->service->refresh(), '续签成功' ); } }