86 lines
1.7 KiB
TypeScript
86 lines
1.7 KiB
TypeScript
/**
|
|
* 认证相关API接口
|
|
*/
|
|
|
|
import request from '@/utils/request'
|
|
import { API_PATHS } from '@/config/constants'
|
|
import type {
|
|
LoginRequest,
|
|
LoginResponse,
|
|
RegisterRequest,
|
|
RegisterResponse,
|
|
RefreshTokenRequest,
|
|
RefreshTokenResponse,
|
|
CaptchaResponse,
|
|
OAuthLoginRequest,
|
|
UserInfo
|
|
} from '@/types/api'
|
|
|
|
export const authApi = {
|
|
/**
|
|
* 用户登录
|
|
*/
|
|
login(data: LoginRequest): Promise<LoginResponse> {
|
|
return request.post(API_PATHS.AUTH.LOGIN, data, {
|
|
skipAuth: true,
|
|
showLoading: true,
|
|
loadingText: '正在登录...'
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 用户注册
|
|
*/
|
|
register(data: RegisterRequest): Promise<RegisterResponse> {
|
|
return request.post(API_PATHS.AUTH.REGISTER, data, {
|
|
skipAuth: true,
|
|
showLoading: true,
|
|
loadingText: '正在注册...'
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 用户登出
|
|
*/
|
|
logout(): Promise<void> {
|
|
return request.post(API_PATHS.AUTH.LOGOUT)
|
|
},
|
|
|
|
/**
|
|
* 刷新Token
|
|
*/
|
|
refreshToken(data: RefreshTokenRequest): Promise<RefreshTokenResponse> {
|
|
return request.post(API_PATHS.AUTH.REFRESH_TOKEN, data, {
|
|
skipAuth: true,
|
|
skipErrorHandler: true
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 获取验证码
|
|
*/
|
|
getCaptcha(): Promise<CaptchaResponse> {
|
|
return request.get(API_PATHS.AUTH.CAPTCHA, undefined, {
|
|
skipAuth: true
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 第三方登录
|
|
*/
|
|
oauthLogin(data: OAuthLoginRequest): Promise<LoginResponse> {
|
|
return request.post(API_PATHS.AUTH.OAUTH_LOGIN, data, {
|
|
skipAuth: true,
|
|
showLoading: true,
|
|
loadingText: '正在登录...'
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 获取用户信息
|
|
*/
|
|
getUserInfo(): Promise<UserInfo> {
|
|
return request.get(API_PATHS.AUTH.USER_INFO)
|
|
}
|
|
}
|