refactor: move authentication endpoints to a single file

This commit is contained in:
AkagiYui 2024-06-03 17:35:25 +08:00
parent 197d301739
commit 6c964cbccb
4 changed files with 97 additions and 94 deletions

95
src/api/endpoints/auth.ts Normal file
View File

@ -0,0 +1,95 @@
import Request from "../request"
type TokenResponse = {
token: string
refreshToken: string
}
/**
*
* @param username
* @param password
* @param email
* @param captcha
*/
export async function sendRegisterEmailCode(
username: string,
password: string,
email: string,
captcha: GeetestSuccessInfo,
): Promise<void> {
await Request.post(
"/auth/register/email",
{
username: username,
password: password,
email: email,
},
{
params: { ...captcha },
},
)
}
/**
*
* @param username
* @param code
*/
export async function confirmRegisterEmailCode(username: string, code: string): Promise<void> {
await Request.post("/auth/register", {
email: username,
verifyCode: code,
})
}
/**
*
* @param phone
* @param captcha
*/
export async function sendSmsCode(phone: string, captcha: GeetestSuccessInfo): Promise<void> {
await Request.post(
"/auth/sms",
{
...captcha,
phone,
},
{
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
},
)
}
/**
*
*/
export async function confirmSmsCode(phone: string, code: string): Promise<string> {
const res = await Request.get<TokenResponse>("/auth/token/sms", {
params: {
phone: phone,
code: code,
},
})
return res.data.token
}
/**
* token
* @param username
* @param password
*/
export async function getToken(username: string, password: string): Promise<string> {
const res = await Request.post<TokenResponse>(
"/auth/token",
{ username, password },
{
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
},
)
return res.data.token
}

View File

@ -91,28 +91,6 @@ export async function updateUserInfo(
await Request.put(`/user/${id}`, requestData)
}
type TokenResponse = {
token: string
refreshToken: string
}
/**
* token
* @param username
* @param password
*/
export async function getToken(username: string, password: string): Promise<string> {
const res = await Request.post<TokenResponse>(
"/user/token",
{ username, password },
{
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
},
)
return res.data.token
}
/** 获取用户信息 */
export async function getUserInfo(): Promise<UserInfoResponse> {
@ -205,74 +183,3 @@ export async function assignRoles(id: string, roles: string[]): Promise<void> {
export async function removeRoles(id: string, roles: string[]): Promise<void> {
await Request.delete(`/user/${id}/role`, { data: roles })
}
/**
*
* @param username
* @param password
* @param email
* @param captcha
*/
export async function sendRegisterEmailCode(
username: string,
password: string,
email: string,
captcha: GeetestSuccessInfo,
): Promise<void> {
await Request.post(
"/user/register/email",
{
username: username,
password: password,
email: email,
},
{
params: { ...captcha },
},
)
}
/**
*
* @param username
* @param code
*/
export async function confirmRegisterEmailCode(username: string, code: string): Promise<void> {
await Request.post("/user/register", {
email: username,
verifyCode: code,
})
}
/**
*
* @param phone
* @param captcha
*/
export async function sendSmsCode(phone: string, captcha: GeetestSuccessInfo): Promise<void> {
await Request.post(
"/user/sms",
{
...captcha,
phone,
},
{
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
},
)
}
/**
*
*/
export async function confirmSmsCode(phone: string, code: string): Promise<string> {
const res = await Request.get<TokenResponse>("/user/token/sms", {
params: {
phone: phone,
code: code,
},
})
return res.data.token
}

View File

@ -1,5 +1,6 @@
export { default as EMD } from "./ResponseMessages"
export * from "./endpoints/auth"
export * from "./endpoints/announcement"
export * from "./endpoints/file"
export * from "./endpoints/folder"

View File

@ -84,7 +84,7 @@ function responseFailed(error) {
) {
const data = error.response.data
const code = data["code"]
window.$message.error(EMD[code])
window.$message.error(EMD[code] || "未知错误")
// 如果是开发环境,弹出额外的错误提示
if (isDev) {