fix: connect API to tracker.db via SQLite repository
Deploy / Deploy Staging (push) Failing after 9s
Deploy / Deploy Production (push) Has been skipped
Tests / test (push) Failing after 14s
Tests / lint (push) Failing after 15s

This commit is contained in:
Xiaoxia AI
2026-06-17 13:21:38 +08:00
parent 3bf90f8614
commit 2cda8dec39
67 changed files with 5737 additions and 123 deletions
+80
View File
@@ -0,0 +1,80 @@
/**
* 认证相关 API
*/
import apiClient from './client';
// 类型定义
export interface LoginRequest {
email: string;
password: string;
}
export interface LoginResponse {
access_token: string;
refresh_token: string;
token_type: string;
expires_in: number;
}
export interface RegisterRequest {
email: string;
password: string;
username: string;
display_name?: string;
}
export interface User {
id: string;
email: string;
username: string;
display_name: string;
is_email_verified: boolean;
created_at: string;
}
// 登录
export const login = async (data: LoginRequest): Promise<LoginResponse> => {
const response = await apiClient.post('/auth/login', data);
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<void> => {
await apiClient.post('/auth/logout');
};
// 获取当前用户
export const getCurrentUser = async (): Promise<User> => {
const response = await apiClient.get('/auth/me');
return 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;
};