import request from '@/utils/http' import { buildWebEncryptedLoginBody } from '@/utils/loginRsa' /** * Web端登录(RSA 加密传输账号密码) * @param params 登录参数 { username, password } * @returns 登录响应 */ export async function fetchLogin(params: { username: string; password: string }) { const body = await buildWebEncryptedLoginBody(params.username, params.password) return request.post<{ token: string refreshToken: string expiresIn: number userInfo: { id: string username: string realName: string phone: string role: string regionId: string regionName: string avatarUrl?: string | null } }>({ url: '/web/auth/login', data: body }) } /** * 获取当前用户信息 * @returns 用户信息 */ export function fetchGetUserInfo() { return request.get<{ id: string username: string realName: string phone: string role: string regionId: string regionName: string regionIds?: string[] isSuperAdmin?: boolean isActive: boolean avatarUrl?: string | null }>({ url: '/web/auth/current-user' }) } /** * 获取当前用户菜单 code 权限 */ export function fetchGetMenuCodes() { return request.get<{ isSuperAdmin: boolean all: boolean menuCodes: string[] }>({ url: '/web/auth/menu-codes' }) } /** * 刷新Token * @param refreshToken 刷新令牌 * @returns 新令牌 */ export function fetchRefreshToken(refreshToken: string) { return request.post<{ token: string refreshToken: string expiresIn: number }>({ url: '/web/auth/refresh-token', params: { refreshToken } }) } /** * 登出 */ export function fetchLogout() { return request.post({ url: '/web/auth/logout' }) }