Files
MrleeAdmin/app/api/auth/index.ts
T
Mr.April d84d972e73 feat: 适配5.x后端,重构前端架构
主要变更:
1. 重构API目录结构,采用模块化设计,适配5.x后端接口规范
2. 优化布局组件,提升用户界面体验
3. 增强国际化支持,完善多语言配置
4. 新增权限控制功能,支持前端路由权限管理
5. 优化认证流程,支持JWT认证机制
6. 新增中间件和插件,提升系统扩展性
7. 优化状态管理,采用更清晰的模块化设计
8. 新增搜索框、广告等组件,丰富页面功能
9. 更改包管理工具从npm到pnpm,提升依赖管理效率
10. 完善配置系统,支持多环境配置

适配5.x后端特性:
- 采用新的API接口规范
- 支持JWT认证机制
- 适配后端权限控制体系
- 支持后端国际化接口
- 优化数据交互方式
2026-04-07 11:01:11 +08:00

189 lines
4.0 KiB
TypeScript

import request from '~/utils/request'
/**
* 用户登录认证
*/
export function authenticateUser(data: {
username: string
password: string
}): Promise<any> {
return request.post('/auth/login', data)
}
/**
* 手机验证码登录
*/
export function authenticateWithMobile(data: {
mobile: string
code: string
key: string
}): Promise<any> {
return request.post('/auth/login/mobile', data)
}
/**
* 用户退出登录
*/
export function logoutUser(): Promise<boolean> {
return request.post('/auth/logout')
}
/**
* 用户注册
*/
export function registerUser(data: {
username: string
email: string
password: string
confirm_password: string
pid?: string
}): Promise<any> {
const url = data.pid ? `/auth/register?pid=${data.pid}` : '/auth/register'
return request.post(url, data)
}
/**
* 手机号注册
*/
export function registerWithMobile(data: {
mobile: string
code: string
key: string
pid?: string
}): Promise<any> {
const url = data.pid ? `/auth/register/mobile?pid=${data.pid}` : '/auth/register/mobile'
return request.post(url, data)
}
/**
* 微信授权登录
*/
export function authenticateWithWechat(data: any): Promise<any> {
return request.post('/auth/wechat', data)
}
/**
* 微信小程序登录
*/
export function authenticateWithWeapp(data: any): Promise<any> {
return request.post('/auth/weapp', data)
}
/**
* 绑定手机号
*/
export function bindMobile(data: {
mobile: string
code: string
pid?: string
}): Promise<any> {
const url = data.pid ? `/auth/bind?pid=${data.pid}` : '/auth/bind'
return request.post(url, data)
}
/**
* 生成微信扫码登录二维码
*/
export function generateWechatQrCode(): Promise<any> {
return request.post('/auth/wechat/scan')
}
/**
* 检查微信扫码状态
*/
export function checkWechatScanStatus(data: { scene_id: string }): Promise<any> {
return request.get('/auth/wechat/scan/status', data)
}
/**
* 检查微信登录可用性
*/
export function checkWechatAvailability(): Promise<boolean> {
return request.get('/auth/wechat/availability')
}
/**
* 获取第三方绑定列表
*/
export function getThirdPartyList(): Promise<any[]> {
return request.get('/auth/third-party/list')
}
/**
* 绑定第三方账号
*/
export function bindThirdParty(data: { platform: number }): Promise<boolean> {
return request.post('/auth/third-party/bind', data)
}
/**
* 解绑第三方账号
*/
export function unbindThirdParty(platform: number): Promise<boolean> {
return request.delete(`/auth/third-party/unbind/${platform}`)
}
/**
* 生成第三方绑定二维码
*/
export function generateBindQrCode(platform: number): Promise<any> {
return request.post('/auth/third-party/qr-code', { platform })
}
/**
* 检查绑定二维码状态
*/
export function checkBindQrStatus(sceneId: string): Promise<any> {
return request.get('/auth/third-party/qr-status', { scene_id: sceneId })
}
/**
* 验证邮箱(第一步:验证邮箱和验证码)
*/
export function verifyEmail(data: {
email: string
code: string
}): Promise<boolean> {
return request.post('/auth/verify-email', data)
}
/**
* 发送邮箱验证码
*/
export function sendEmailCode(data: {
email: string
captcha_key: string
captcha_code: string
}): Promise<boolean> {
return request.post('/auth/send-email-code', data)
}
/**
* 忘记密码 - 重置密码(第二步:设置新密码)
*/
export function forgetPassword(data: {
email: string
code: string
new_password: string
confirm_password: string
}): Promise<boolean> {
return request.post('/auth/forget-password', data)
}
/**
* 刷新 Token
*/
export function refreshToken(refresh_token: string): Promise<{
code: number
msg: string
data?: {
access_token: string
refresh_token: string
}
}> {
return request.post('/auth/refresh', { refresh_token }, {
// 不带 token 请求,避免 401 循环
headers: {}
} as any)
}