mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-26 06:19:04 +00:00
refactor: 迁移前端资源文件至web目录 feat: 新增多种图标资源 style: 统一代码风格和格式化配置 docs: 更新README和文档说明 chore: 更新依赖和配置文件 fix: 修复部分类型定义和枚举 perf: 优化路由和组件加载逻辑
146 lines
2.7 KiB
TypeScript
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;
|
|
}
|