index.ts 1.36 KB
import request from '@/utils/request'
import { ADMIN_API_PREFIX } from '@/config'
import type { CaptchaInfoRespVO, LoginReqVO, LoginRespVO, PermissionInfoVO } from '@/types'

/**
 * 认证相关接口
 *
 * 后端实现在 parking-module-system(P1 起已替换掉 P0 的内存占位实现)。
 * 管理员默认账号 admin / admin123(见 sql/02_system_seed.sql)。
 */
export const AuthApi = {
  /** 图形验证码信息 */
  getCaptchaInfo: () => request.get<CaptchaInfoRespVO>(`${ADMIN_API_PREFIX}/system/auth/captcha-info`),

  /** 登录 */
  login: (data: LoginReqVO) => request.post<LoginRespVO>(`${ADMIN_API_PREFIX}/system/auth/login`, data),

  /**
   * 刷新令牌
   *
   * ⚠️ 页面代码**不需要**手动调用:`utils/request.ts` 收到 401 时会自动刷新并重放原请求。
   *    这里导出是为了让「刷新接口存在」这件事在 API 契约层可见。
   */
  refreshToken: (refreshToken: string) =>
    request.post<LoginRespVO>(`${ADMIN_API_PREFIX}/system/auth/refresh-token`, { refreshToken }),

  /** 登出 */
  logout: () => request.post<boolean>(`${ADMIN_API_PREFIX}/system/auth/logout`),

  /** 获取当前用户的 用户信息 + 角色 + 权限 + 菜单(一次调用拿全,菜单驱动前端动态路由) */
  getPermissionInfo: () => request.get<PermissionInfoVO>(`${ADMIN_API_PREFIX}/system/auth/get-permission-info`)
}