wip: 临时提交

This commit is contained in:
Ray.Hao
2025-05-29 12:41:21 +08:00
parent 913f434a43
commit 220f719c38
8 changed files with 1209 additions and 288 deletions

View File

@@ -1,126 +1,115 @@
import request from "@/utils/request";
const AUTH_BASE_URL = "/api/v1/auth";
export interface LoginData {
username: string;
password: string;
}
export interface WxLoginData {
code: string;
encryptedData?: string;
iv?: string;
phoneCode?: string;
}
export interface LoginResult {
accessToken: string;
refreshToken?: string;
tokenType: string;
expiresIn: number;
isNewUser?: boolean;
isProfileComplete?: boolean;
}
const AuthAPI = {
/**
* 登录接口
*
* @param username 用户名
* @param password 密码
* @returns 返回 token
* 账号密码登录
* @param data 登录表单数据
* @returns 登录结果
*/
login(data: LoginFormData): Promise<LoginResult> {
login(data: LoginData): Promise<LoginResult> {
return request<LoginResult>({
url: "/api/v1/auth/login",
url: `${AUTH_BASE_URL}/login`,
method: "POST",
data: data,
header: {
"Content-Type": "application/x-www-form-urlencoded",
},
data,
});
},
/**
* 微信登录接口
*
* @param code 微信登录code
* @returns 返回 token
* 微信登录 (基础版)
* @param code 微信登录凭证
* @returns 登录结果
*/
wechatLogin(code: string): Promise<LoginResult> {
return request<LoginResult>({
url: "/api/v1/auth/wechat-login",
url: `${AUTH_BASE_URL}/wechat/login`,
method: "POST",
data: { code },
header: {
"Content-Type": "application/x-www-form-urlencoded",
},
});
},
/**
* 微信小程序登录接口(增强版)
*
* @param data 微信登录数据
* @returns 返回 token 和用户信息
* 微信小程序增强登录 (获取手机号)
* @param data 包含code, encryptedData, iv等的登录数据
* @returns 登录结果
*/
wechatMiniLogin(data: WechatMiniLoginData): Promise<WechatLoginResult> {
return request<WechatLoginResult>({
url: "/api/v1/auth/wechat-mini-login",
wechatMiniLogin(data: WxLoginData): Promise<LoginResult> {
return request<LoginResult>({
url: `${AUTH_BASE_URL}/wechat/mini-login`,
method: "POST",
data: data,
header: {
"Content-Type": "application/json",
},
data,
});
},
/**
* 登出接口
* 微信一键登录 (通过手机号)
* @param data 包含code和phoneCode的登录数据
* @returns 登录结果
*/
logout(): Promise<void> {
return request({
url: "/api/v1/auth/logout",
method: "DELETE",
wechatPhoneLogin(data: WxLoginData): Promise<LoginResult> {
return request<LoginResult>({
url: `${AUTH_BASE_URL}/wechat/phone-login`,
method: "POST",
data,
});
},
/**
* 检查会话有效性
* @returns 会话是否有效
*/
checkSession(): Promise<{ valid: boolean }> {
return request<{ valid: boolean }>({
url: `${AUTH_BASE_URL}/check-session`,
method: "GET",
});
},
/**
* 登出
* @returns 登出结果
*/
logout(): Promise<any> {
return request<any>({
url: `${AUTH_BASE_URL}/logout`,
method: "POST",
});
},
/**
* 刷新令牌
* @param refreshToken 刷新令牌
* @returns 新的访问令牌
*/
refreshToken(refreshToken: string): Promise<{ accessToken: string; expiresIn: number }> {
return request<{ accessToken: string; expiresIn: number }>({
url: `${AUTH_BASE_URL}/refresh-token`,
method: "POST",
data: { refreshToken },
});
},
};
export default AuthAPI;
/** 登录响应 */
export interface LoginResult {
/** 访问token */
accessToken: string;
/** token 类型 */
tokenType?: string;
}
export interface LoginFormData {
username: string;
password: string;
}
/** 微信小程序登录数据 */
export interface WechatMiniLoginData {
/** 微信登录code */
code: string;
/** 用户信息(可选) */
userInfo?: {
/** 昵称 */
nickName?: string;
/** 头像URL */
avatarUrl?: string;
/** 性别 */
gender?: number;
/** 国家 */
country?: string;
/** 省份 */
province?: string;
/** 城市 */
city?: string;
};
/** 手机号授权数据(可选) */
phoneData?: {
/** 手机号授权code */
code: string;
/** 加密数据 */
encryptedData?: string;
/** 初始向量 */
iv?: string;
};
}
/** 微信登录结果 */
export interface WechatLoginResult extends LoginResult {
/** 是否为新用户 */
isNewUser?: boolean;
/** 用户信息是否完整 */
isProfileComplete?: boolean;
/** 用户基本信息 */
userInfo?: {
userId?: number;
username?: string;
nickname?: string;
avatar?: string;
mobile?: string;
};
}