feishuAppInfo($corpAbbr, $systemCcode); $feishu = new Feishu($certificate['app_id'], $certificate['app_secret'], $certificate['abbr']); return ['auth_url' => $feishu->authorize($certificate)]; } /** * 登录,支持多类型 */ public function login(array $data): array { $loginType = $data['login_type'] ?? 'upwd'; $logic = new AuthLogic(); return match ($loginType) { 'feishu' => $logic->feishuLogin($data), 'qrcode' => $logic->qrCodeLogin($data), default => $logic->uPwdLogin($data), }; } /** * 用户注册 */ public function register(array $data) { $logic = new AuthLogic(); try { Db::beginTransaction(); $result = $logic->register($data); Db::commit(); return $result; } catch (\Throwable $e) { Db::rollback(); throw $e; } } /** * 校验token */ public function verifyToken(string $token, string $systemCode): array { return (new AuthLogic())->verifyToken($token, $systemCode); } /** * 刷新token * @param string $refreshToken * @param string|null $systemCode */ public function refreshToken(string $refreshToken, string $systemCode): array { return (new AuthLogic())->refreshToken($refreshToken, $systemCode); } /** * 登出(失效token) */ public function logout(?string $token, string $systemCode): void { (new AuthLogic())->logout($token, $systemCode); } /** * 强制拉黑token */ public function blockToken(string $token, string $systemCode): void { (new AuthLogic())->blockToken($token, $systemCode); } }