import request from '@/utils/http'; const API_PATH = '/system/auth'; const AuthAPI = { /** * 登录 * @param body 登录表单数据 * @returns 登录响应 */ login(body: LoginFormData) { return request>({ url: `${API_PATH}/login`, method: 'post', headers: { 'Content-Type': 'multipart/form-data', }, data: body, }); }, /** * 刷新令牌 * @param body 刷新令牌请求体 * @returns 刷新响应 */ refreshToken(body: RefreshToekenBody) { return request>({ url: `${API_PATH}/token/refresh`, method: 'post', data: body, }); }, /** * 获取验证码 * @returns 验证码信息 */ getCaptcha() { return request>({ url: `${API_PATH}/captcha/get`, method: 'get', }); }, /** * 退出登录 * @param body 退出登录操作 */ logout(body: LogoutBody) { return request({ url: `${API_PATH}/logout`, method: 'post', data: body, }); }, /** * 获取免登录用户列表 * @returns 免登录用户列表 */ getAutoLoginUsers() { return request>({ url: `${API_PATH}/auto-login/users`, method: 'get', }); }, /** * 获取免登录Token * @param userId 用户ID * @returns 免登录Token响应 */ getAutoLoginToken(userId: number) { return request>({ url: `${API_PATH}/auto-login/token`, method: 'post', params: { user_id: userId }, }); }, /** * 免登录 * @param token 免登录Token * @returns 登录响应 */ 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; }