70 lines
1.6 KiB
TypeScript
70 lines
1.6 KiB
TypeScript
import request from "@/utils/request";
|
|
import type { LoginRequest, LoginResponse, CaptchaInfo } from "./types";
|
|
|
|
const AUTH_BASE_URL = "/api/v1/auth";
|
|
|
|
const AuthAPI = {
|
|
/** 登录接口*/
|
|
login(data: LoginRequest) {
|
|
const payload: Record<string, any> = {
|
|
username: data.username,
|
|
password: data.password,
|
|
captchaId: data.captchaId,
|
|
captchaCode: data.captchaCode,
|
|
};
|
|
|
|
// tenantId 可选,仅在提供时包含(多租户功能)
|
|
if (typeof data.tenantId !== "undefined") {
|
|
payload.tenantId = data.tenantId;
|
|
}
|
|
|
|
return request<any, LoginResponse>({
|
|
url: `${AUTH_BASE_URL}/login`,
|
|
method: "post",
|
|
data: payload,
|
|
});
|
|
},
|
|
|
|
/** 切换租户(平台用户) - 返回新的 token */
|
|
switchTenant(tenantId: number) {
|
|
return request<any, LoginResponse>({
|
|
url: `${AUTH_BASE_URL}/switch-tenant`,
|
|
method: "post",
|
|
params: { tenantId },
|
|
});
|
|
},
|
|
|
|
/** 刷新 token 接口*/
|
|
refreshToken(refreshToken: string) {
|
|
return request<any, LoginResponse>({
|
|
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 * from "./types";
|