Files
boss_font/src/api/auth-api.ts
2026-02-26 15:11:34 +08:00

87 lines
1.8 KiB
TypeScript

import request from '@/utils/request'
const AUTH_BASE_URL = '/api/v1/auth'
const AuthAPI = {
/** 登录接口*/
login(data: LoginFormData) {
const formData = new FormData()
formData.append('username', 'admin')
formData.append('password', data.password)
formData.append('captchaKey', data.captchaKey)
formData.append('captchaCode', data.captchaCode)
return request<any, LoginResult>({
url: `${AUTH_BASE_URL}/login`,
method: 'post',
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
}
})
},
/** 刷新 token 接口*/
refreshToken(refreshToken: string) {
return request<any, LoginResult>({
url: `${AUTH_BASE_URL}/refresh-token`,
method: 'post',
params: { refreshToken },
headers: {
Authorization: 'no-auth'
}
})
},
/** 退出登录接口 */
logout() {
return request({
url: `${AUTH_BASE_URL}/logout`,
method: 'delete'
})
},
/** 获取验证码接口*/
getCaptcha() {
return request<any, CaptchaInfo>({
url: `${AUTH_BASE_URL}/captcha`,
method: 'get'
})
}
}
export default AuthAPI
/** 登录表单数据 */
export interface LoginFormData {
/** 用户名 */
username: string
/** 密码 */
password: string
/** 验证码缓存key */
captchaKey: string
/** 验证码 */
captchaCode: string
/** 记住我 */
rememberMe: boolean
}
/** 登录响应 */
export interface LoginResult {
/** 访问令牌 */
accessToken: string
/** 刷新令牌 */
refreshToken: string
/** 令牌类型 */
tokenType: string
/** 过期时间(秒) */
expiresIn: number
}
/** 验证码信息 */
export interface CaptchaInfo {
/** 验证码缓存key */
captchaKey: string
/** 验证码图片Base64字符串 */
captchaBase64: string
}