import axios from 'axios'; import request from '../request'; export interface LoginResponse { access_token: string; refresh_token?: string; token_type: string; user: { id: number; username: string; display_name: string; role: string; email: string | null; data_source_permissions?: string; custom_permissions?: string; group_ids?: number[]; }; } export interface MeResponse { id: number; username: string; display_name: string; role: string; email: string | null; data_source_permissions?: string; custom_permissions?: string; group_ids?: number[]; } export const authApi = { /** 登录,成功返回 access_token + refresh_token 与用户信息 */ login: (username: string, password: string) => request.post('/auth/login', { username, password }), /** 登出并撤销服务端 refresh token;token 参数用于本地凭证已清理时的显式撤销 */ logout: (token?: string) => token ? axios.post('/api/v1/auth/logout', {}, { headers: { Authorization: `Bearer ${token}` } }) : request.post('/auth/logout'), getMe: () => request.get('/auth/me'), };