109 lines
1.9 KiB
TypeScript
109 lines
1.9 KiB
TypeScript
/**
|
|
* 认证模块 API
|
|
*/
|
|
import { get, post, put } from '@/utils/request'
|
|
|
|
/**
|
|
* 登录请求参数
|
|
*/
|
|
export interface LoginParams {
|
|
username: string
|
|
password: string
|
|
}
|
|
|
|
/**
|
|
* 登录响应
|
|
*/
|
|
export interface LoginResponse {
|
|
access_token: string
|
|
refresh_token: string
|
|
expires_in: number
|
|
user: {
|
|
id: number
|
|
username: string
|
|
user_type: 1 | 2 | 3 | 4 // 1=超级管理员 2=平台 3=代理 4=企业
|
|
enterprise_id?: number
|
|
shop_id?: number
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 用户信息
|
|
*/
|
|
export interface UserInfo {
|
|
id: number
|
|
username: string
|
|
phone: string
|
|
user_type: 1 | 2 | 3 | 4
|
|
user_type_name: string
|
|
shop_id?: number
|
|
enterprise_id?: number
|
|
// 以下字段为可选扩展字段(根据实际接口返回)
|
|
nickname?: string
|
|
shop_name?: string
|
|
enterprise_name?: string
|
|
email?: string
|
|
avatar?: string
|
|
status?: 'active' | 'inactive'
|
|
create_time?: string
|
|
last_login_time?: string
|
|
}
|
|
|
|
/**
|
|
* 修改密码参数
|
|
*/
|
|
export interface ChangePasswordParams {
|
|
old_password: string
|
|
new_password: string
|
|
}
|
|
|
|
/**
|
|
* 登录
|
|
* POST /api/auth/login
|
|
*/
|
|
export function login(data: LoginParams) {
|
|
return post<LoginResponse>('/api/auth/login', { data })
|
|
}
|
|
|
|
/**
|
|
* 登出
|
|
* POST /api/auth/logout
|
|
*/
|
|
export function logout() {
|
|
return post<void>('/api/auth/logout')
|
|
}
|
|
|
|
/**
|
|
* 获取当前用户信息响应
|
|
*/
|
|
export interface GetUserInfoResponse {
|
|
user: UserInfo
|
|
permissions: string[]
|
|
}
|
|
|
|
/**
|
|
* 获取当前用户信息
|
|
* GET /api/auth/me
|
|
*/
|
|
export function getUserInfo() {
|
|
return get<GetUserInfoResponse>('/api/auth/me').then(res => res.user)
|
|
}
|
|
|
|
/**
|
|
* 刷新Token
|
|
* POST /api/auth/refresh
|
|
*/
|
|
export function refreshToken(refresh_token: string) {
|
|
return post<LoginResponse>('/api/auth/refresh', {
|
|
data: { refresh_token },
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 修改密码
|
|
* PUT /api/auth/password
|
|
*/
|
|
export function changePassword(data: ChangePasswordParams) {
|
|
return put<void>('/api/auth/password', { data })
|
|
}
|