Files
FastapiAdmin/frontend/new-web/src/api/module_system/auth.ts
T
zhangtao 6db264bef3 feat: 删除fastapi-backend.spec文件并更新依赖项注释
- 移除不再使用的fastapi-backend.spec文件
- 更新pyproject.toml和requirements.txt中的依赖项注释,增加了对OpenAI API客户端和其他依赖的描述
- 在多个API模块中统一返回类型为单数形式,提升代码一致性
- 更新前端环境配置,调整API基础URL和WebSocket端点为本地地址
2026-05-05 07:16:13 +08:00

125 lines
2.5 KiB
TypeScript

import request from "@/utils/http";
const API_PATH = "/system/auth";
/** 第三方 OAuth 登录渠道(与后端 `/system/auth/oauth/{provider}` 一致) */
export type OAuthProvider = "wechat" | "qq" | "github" | "gitee";
const AuthAPI = {
/**
* 登录
* @param body 登录参数
* @returns 登录响应
*/
login(body: LoginFormData) {
return request<ApiResponse<LoginResult>>({
url: `${API_PATH}/login`,
method: "post",
headers: {
"Content-Type": "multipart/form-data",
},
data: body,
});
},
refreshToken(body: RefreshToekenBody) {
return request<ApiResponse<LoginResult>>({
url: `${API_PATH}/token/refresh`,
method: "post",
data: body,
});
},
getCaptcha() {
return request<ApiResponse<CaptchaInfo>>({
url: `${API_PATH}/captcha/get`,
method: "get",
});
},
logout(body: LogoutBody) {
return request<ApiResponse>({
url: `${API_PATH}/logout`,
method: "post",
data: body,
});
},
/** 获取免登录用户列表 */
getAutoLoginUsers() {
return request<ApiResponse<AutoLoginUser[]>>({
url: `${API_PATH}/auto-login/users`,
method: "get",
});
},
/** 获取免登录Token */
getAutoLoginToken(userId: number) {
return request<ApiResponse<AutoLoginToken>>({
url: `${API_PATH}/auto-login/token`,
method: "post",
params: { user_id: userId },
});
},
/** 免登录 */
autoLogin(token: string) {
return request<ApiResponse<LoginResult>>({
url: `${API_PATH}/auto-login`,
method: "post",
params: { token },
});
},
};
export default AuthAPI;
/** 登录表单数据 */
export interface LoginFormData {
username: string;
password: string;
captcha_key: string;
captcha: string;
remember: boolean;
login_type: string;
}
// 刷新令牌
export interface RefreshToekenBody {
refresh_token: string;
}
/** 登录响应 */
export interface LoginResult {
access_token: string;
refresh_token: string;
token_type: string;
expires_in: number;
}
/** 验证码信息 */
export interface CaptchaInfo {
enable: boolean;
key: string;
img_base: string;
}
/** 退出登录操作 */
export interface LogoutBody {
token: string;
}
/** 免登录用户信息 */
export interface AutoLoginUser {
id: number;
username: string;
name: string;
avatar: string | null;
}
/** 免登录Token响应 */
export interface AutoLoginToken {
token: string;
user: AutoLoginUser;
}