87 lines
1.8 KiB
TypeScript
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
|
|
}
|