From 08bf93d6ad3725b8d34969d34feb06a043ded0e4 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Thu, 30 Jul 2026 00:28:10 +0800 Subject: [PATCH] refactor(auth): remove old auth.ts (moved to auth/ directory) --- apps/web/src/api/auth.ts | 188 --------------------------------------- 1 file changed, 188 deletions(-) delete mode 100644 apps/web/src/api/auth.ts diff --git a/apps/web/src/api/auth.ts b/apps/web/src/api/auth.ts deleted file mode 100644 index da6e6340f..000000000 --- a/apps/web/src/api/auth.ts +++ /dev/null @@ -1,188 +0,0 @@ -/** - * 认证相关 API - */ -import axios from "axios" -import apiClient from "./client" - -// 类型定义 -export interface LoginRequest { - email: string - password: string -} - -export interface LoginResponse { - access_token: string - refresh_token?: string | null - token_type: string - expires_in: number - user_id: string - email: string - username: string - display_name: string -} - -export interface RegisterRequest { - email: string - password: string - username: string - display_name?: string -} - -export interface User { - id: string - user_id: string - email: string - username: string - display_name: string - is_email_verified: boolean - email_verified: boolean - created_at?: string -} - -export interface UserResponse { - id?: string - user_id?: string - email: string - username: string - display_name: string - is_email_verified?: boolean - email_verified?: boolean - created_at?: string -} - -export const normalizeUser = (data: UserResponse): User => { - const userId = data.id ?? data.user_id ?? "" - const emailVerified = data.is_email_verified ?? data.email_verified ?? false - - return { - id: userId, - user_id: userId, - email: data.email, - username: data.username, - display_name: data.display_name, - is_email_verified: emailVerified, - email_verified: emailVerified, - created_at: data.created_at, - } -} - -// 登录 -export const login = async (data: LoginRequest): Promise => { - const response = await apiClient.post("/auth/login", data) - return response.data -} - -// 刷新 access_token(使用裸 axios 避免拦截器递归) -export const refreshAccessToken = async (refreshToken: string): Promise => { - const baseURL = apiClient.defaults.baseURL ?? "" - const response = await axios.post(`${baseURL}/auth/refresh`, { - refresh_token: refreshToken, - }) - return response.data -} - -// 注册 -export const register = async (data: RegisterRequest): Promise<{ message: string }> => { - const response = await apiClient.post("/auth/register", data) - return response.data -} - -// 登出 -export const logout = async (): Promise => { - await apiClient.post("/auth/logout") -} - -// 获取当前用户 -export const getCurrentUser = async (): Promise => { - const response = await apiClient.get("/auth/me") - return normalizeUser(response.data) -} - -// 请求密码重置 -export const requestPasswordReset = async (email: string): Promise<{ message: string }> => { - const response = await apiClient.post("/auth/forgot-password", { email }) - return response.data -} - -// 重置密码 -export const resetPassword = async ( - token: string, - newPassword: string, -): Promise<{ message: string }> => { - const response = await apiClient.post("/auth/reset-password", { - token, - new_password: newPassword, - }) - return response.data -} - -// 验证邮箱 -export const verifyEmail = async (token: string): Promise<{ message: string }> => { - const response = await apiClient.post("/auth/verify-email", { token }) - return response.data -} - -/* ========== 微信登录 ========== */ - -export interface WechatAuthUrlResponse { - auth_url: string - state: string -} - -export interface WechatCallbackResponse { - access_token: string - refresh_token?: string | null - user_id: string - display_name: string - avatar_url: string - is_new_user: boolean - binding_complete: boolean - expires_in: number -} - -export interface SendVerificationCodeRequest { - target: "email" | "phone" - value: string - purpose: "bind" | "login" | "reset_password" -} - -export interface BindContactRequest { - email?: string - email_code?: string - phone?: string - phone_code?: string -} - -export interface BindContactResponse { - success: boolean - user: User -} - -// 获取微信授权链接 -export const getWechatAuthUrl = async (): Promise => { - const response = await apiClient.get("/auth/wechat/url") - return response.data -} - -// 微信回调登录 -export const wechatCallback = async ( - code: string, - state: string, -): Promise => { - const response = await apiClient.post("/auth/wechat/callback", { code, state }) - return response.data -} - -// 发送验证码 -export const sendVerificationCode = async ( - data: SendVerificationCodeRequest, -): Promise<{ message: string }> => { - const response = await apiClient.post("/auth/send-verification-code", data) - return response.data -} - -// 绑定联系方式 -export const bindContact = async (data: BindContactRequest): Promise => { - const response = await apiClient.post("/auth/bind-contact", data) - return response.data -}