Files
FastapiAdmin/frontend/web/src/api/module_system/auth.ts
T
zhangtao eb150bcede feat: 重构前端项目结构并优化代码
refactor: 迁移前端资源文件至web目录
feat: 新增多种图标资源
style: 统一代码风格和格式化配置
docs: 更新README和文档说明
chore: 更新依赖和配置文件
fix: 修复部分类型定义和枚举
perf: 优化路由和组件加载逻辑
2026-04-29 00:02:09 +08:00

146 lines
2.7 KiB
TypeScript

import request from '@/utils/http';
const API_PATH = '/system/auth';
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,
});
},
/**
* 刷新令牌
* @param body 刷新令牌请求体
* @returns 刷新响应
*/
refreshToken(body: RefreshToekenBody) {
return request<ApiResponse<LoginResult>>({
url: `${API_PATH}/token/refresh`,
method: 'post',
data: body,
});
},
/**
* 获取验证码
* @returns 验证码信息
*/
getCaptcha() {
return request<ApiResponse<CaptchaInfo>>({
url: `${API_PATH}/captcha/get`,
method: 'get',
});
},
/**
* 退出登录
* @param body 退出登录操作
*/
logout(body: LogoutBody) {
return request({
url: `${API_PATH}/logout`,
method: 'post',
data: body,
});
},
/**
* 获取免登录用户列表
* @returns 免登录用户列表
*/
getAutoLoginUsers() {
return request<ApiResponse<AutoLoginUser[]>>({
url: `${API_PATH}/auto-login/users`,
method: 'get',
});
},
/**
* 获取免登录Token
* @param userId 用户ID
* @returns 免登录Token响应
*/
getAutoLoginToken(userId: number) {
return request<ApiResponse<AutoLoginToken>>({
url: `${API_PATH}/auto-login/token`,
method: 'post',
params: { user_id: userId },
});
},
/**
* 免登录
* @param token 免登录Token
* @returns 登录响应
*/
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;
}