Files
happy-life-star/web-new/src/api/auth.ts
T

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)
}
}