import request from "@/utils/http"; const API_PATH = "/system/auth"; /** 第三方 OAuth 登录渠道(与后端 `/system/auth/oauth/{provider}` 一致) */ export type OAuthProvider = "wechat" | "qq" | "github" | "gitee"; const AuthAPI = { /** * 登录 * @param body 登录参数 * @returns 登录响应 */ login(body: LoginFormData) { return request>({ url: `${API_PATH}/login`, method: "post", headers: { "Content-Type": "multipart/form-data", }, data: body, }); }, refreshToken(body: RefreshToekenBody) { return request>({ url: `${API_PATH}/token/refresh`, method: "post", data: body, }); }, getCaptcha() { return request>({ url: `${API_PATH}/captcha/get`, method: "get", }); }, logout(body: LogoutBody) { return request({ url: `${API_PATH}/logout`, method: "post", data: body, }); }, /** 获取免登录用户列表 */ getAutoLoginUsers() { return request>({ url: `${API_PATH}/auto-login/users`, method: "get", }); }, /** 获取免登录Token */ getAutoLoginToken(userId: number) { return request>({ url: `${API_PATH}/auto-login/token`, method: "post", params: { user_id: userId }, }); }, /** 免登录 */ autoLogin(token: string) { return request>({ url: `${API_PATH}/auto-login`, method: "post", params: { token }, }); }, }; export default AuthAPI; /** 登录表单数据 */ export interface LoginFormData { username: string; password: string; captcha_key: string; captcha: string; remember: boolean; login_type: string; } // 刷新令牌 export interface RefreshToekenBody { refresh_token: string; } /** 登录响应 */ export interface LoginResult { access_token: string; refresh_token: string; token_type: string; expires_in: number; } /** 验证码信息 */ export interface CaptchaInfo { enable: boolean; key: string; img_base: string; } /** 退出登录操作 */ export interface LogoutBody { token: string; } /** 免登录用户信息 */ export interface AutoLoginUser { id: number; username: string; name: string; avatar: string | null; } /** 免登录Token响应 */ export interface AutoLoginToken { token: string; user: AutoLoginUser; }