import request from "@/utils/request"; import { verify } from "crypto"; const AUTH_BASE_URL = "/api/v1/auth"; class AuthAPI { /** 登录 接口*/ static login(data: LoginData) { const formData = new FormData(); formData.append("username", data.username); formData.append("password", data.password); formData.append("captchaKey", data.captchaKey); formData.append("captchaCode", data.captchaCode); return request({ url: `${AUTH_BASE_URL}/login`, method: "post", data: formData, headers: { "Content-Type": "multipart/form-data", }, }); } /** 注销 接口*/ static logout() { return request({ url: `${AUTH_BASE_URL}/logout`, method: "delete", }); } /** 获取验证码 接口*/ static getCaptcha() { return request({ url: `${AUTH_BASE_URL}/captcha`, method: "get", }); } static sendCode(data: SendCodeData) { const formData = new FormData(); formData.append("contact", data.contact); formData.append("captchaKey", data.captchaKey); formData.append("captchaCode", data.captchaCode); return request({ url: `${AUTH_BASE_URL}/sendRegCode`, method: "post", data: formData, headers: { "Content-Type": "multipart/form-data", }, }); } /** 登录 接口*/ static register(data: RegisterData) { const formData = new FormData(); formData.append("username", data.username); formData.append("password", data.password); formData.append("verifyCode", data.verifyCode); return request({ url: `${AUTH_BASE_URL}/register`, method: "post", data: formData, headers: { "Content-Type": "multipart/form-data", }, }); } static autoLogin(username: string, password: string) { const formData = new FormData(); formData.append("username", username); formData.append("password", password); return request({ url: `${AUTH_BASE_URL}/autoLogin`, method: "post", data: formData, headers: { "Content-Type": "multipart/form-data", }, }); } } export default AuthAPI; /** 登录请求参数 */ export interface LoginData { /** 用户名 */ username: string; /** 密码 */ password: string; /** 验证码缓存key */ captchaKey: string; /** 验证码 */ captchaCode: string; } /** 登录响应 */ export interface LoginResult { /** 访问token */ accessToken?: string; /** 过期时间(单位:毫秒) */ expires?: number; /** 刷新token */ refreshToken?: string; /** token 类型 */ tokenType?: string; } /** 验证码响应 */ export interface CaptchaResult { /** 验证码缓存key */ captchaKey: string; /** 验证码图片Base64字符串 */ captchaBase64: string; } export interface CaptchaData { /** 验证码缓存key */ captchaKey: string; /** 验证码 */ captchaCode: string; } export interface SendCodeData { /** 发送验证码账号 */ contact: string; /** 验证码缓存key */ captchaKey: string; /** 验证码 */ captchaCode: string; } /** 注册请求参数 */ export interface RegisterData { /** 用户名 */ username: string; /** 密码 */ password: string; /** 重复输入密码 */ repeatPassword: string; /** 验证码 */ verifyCode: string; }