import request from "@/plugins/axios"; import type { ApiResponse } from "../response"; import { HttpMethod } from "@/constants"; /** * 认证服务 API 类型定义 */ // 登录请求参数 export interface LoginRequest { userAccount: string; userPassword: string; } // 登录响应数据 export interface LoginResponse { id: number; userAccount: string; unionId: string | null; accessToken: string; refreshToken: string; accessTokenExpireTime: number | null; refreshTokenExpireTime: number | null; } /** * 注册请求参数 */ export interface RegisterRequest { userAccount: string; userPassword: string; checkPassword: string; } /** * 注册响应数据 */ export type RegisterResponse = string; // 刷新令牌响应数据 export interface RefreshTokenResponse { id: number | null; userAccount: string | null; unionId: string | null; accessToken: string; refreshToken: string; accessTokenExpireTime: number | null; refreshTokenExpireTime: number | null; } /** * 认证服务 API */ /** * 用户登录 * @param data 登录请求参数 * @returns 登录响应数据 */ export const login = ( data: LoginRequest ): Promise> => { return request({ url: "/v1/auth/login", method: HttpMethod.POST, data, }); }; /** * 用户注册 * @param data 注册请求参数 * @returns 注册响应数据 */ export const register = ( data: RegisterRequest ): Promise> => { return request({ url: "/v1/user/register", method: HttpMethod.POST, data, }); }; /** * 令牌刷新 * @param refreshToken 刷新令牌 * @returns 新的令牌信息 */ export const refreshToken = ( refreshToken: string ): Promise> => { return request({ url: "/v1/auth/refresh", method: HttpMethod.POST, params: { refreshToken, }, }); }; /** * 获取访问令牌(简化版登录) * @param data 登录请求参数 * @returns 访问令牌字符串 */ export const getAccessToken = ( data: LoginRequest ): Promise> => { return request({ url: "/v1/auth/auth", method: HttpMethod.POST, data, }); }; /** * 令牌验证 * @returns 验证结果 */ export const validateToken = (): Promise> => { return request({ url: "/v1/auth/validate", method: HttpMethod.POST, }); };