import { baseRequestClient, requestClient } from '#/api/request'; export namespace AuthApi { /** 登录接口参数 */ export interface LoginParams { account: string; password?: string; code?: string; /** @deprecated 兼容旧客户端 */ login_method?: 'phone' | 'login_account' | 'job_number'; username?: string; phone?: string; login_account?: string; job_number?: string; } /** 登录接口返回值 */ export interface LoginResult { token: string; } export interface RefreshTokenResult { data: string; status: number; } /** 发送验证码返回结果 */ export interface SendCodeResult { code?: string; need_select?: boolean; } } /** * 登录 */ export async function loginApi(data: AuthApi.LoginParams) { if (data.account) { return requestClient.post('login', { account: data.account, password: data.password, code: data.code, }); } const params: Record = { login_method: data.login_method || 'phone', password: data.password, code: data.code, }; if (data.login_method === 'phone') { params.phone = data.phone || data.username; } else if (data.login_method === 'login_account') { params.login_account = data.login_account; } else if (data.login_method === 'job_number') { params.job_number = data.job_number; } return requestClient.post('login', params); } /** * 发送验证码 */ export async function sendVerificationCode(params: { account?: string; password?: string; login_method?: 'phone' | 'login_account' | 'job_number'; username?: string; phone?: string; login_account?: string; job_number?: string; }) { if (params.account) { return requestClient.post('send-verification-code', { account: params.account, }); } const requestParams: Record = { login_method: params.login_method || 'phone', }; if (params.login_method === 'phone') { requestParams.phone = params.phone || params.username; } else if (params.login_method === 'login_account') { requestParams.login_account = params.login_account; } else if (params.login_method === 'job_number') { requestParams.job_number = params.job_number; } return requestClient.post( 'send-verification-code', requestParams, ); } /** * 刷新accessToken */ export async function refreshTokenApi() { return baseRequestClient.post('/auth/refresh', { withCredentials: true, }); } /** * 退出登录 */ export async function logoutApi() { return baseRequestClient.post('logout', { withCredentials: true, }); } /** * 获取用户权限码 */ export async function getAccessCodesApi() { return requestClient.get('auth/codes'); }