Files
game-marathon/frontend/src/api/auth.ts

38 lines
994 B
TypeScript
Raw Normal View History

2025-12-14 02:38:35 +07:00
import client from './client'
2025-12-19 02:07:25 +07:00
import type { TokenResponse, LoginResponse, User } from '@/types'
2025-12-14 02:38:35 +07:00
export interface RegisterData {
login: string
password: string
nickname: string
}
export interface LoginData {
login: string
password: string
}
export const authApi = {
register: async (data: RegisterData): Promise<TokenResponse> => {
const response = await client.post<TokenResponse>('/auth/register', data)
return response.data
},
2025-12-19 02:07:25 +07:00
login: async (data: LoginData): Promise<LoginResponse> => {
const response = await client.post<LoginResponse>('/auth/login', data)
return response.data
},
verify2FA: async (sessionId: number, code: string): Promise<TokenResponse> => {
const response = await client.post<TokenResponse>('/auth/2fa/verify', null, {
params: { session_id: sessionId, code }
})
2025-12-14 02:38:35 +07:00
return response.data
},
me: async (): Promise<User> => {
const response = await client.get<User>('/auth/me')
return response.data
},
}