Files
banban/banban-mini/src/services/auth.ts
2026-05-06 03:37:08 +08:00

67 lines
1.3 KiB
TypeScript

import {
clearLoginSession,
getCurrentUserId as getStoredCurrentUserId,
getToken as getStoredToken,
saveLoginSession,
} from './session'
import { request } from './api'
export interface WechatLoginPayload {
code: string
nickname?: string
avatar_url?: string
}
export interface LoginSession {
access_token: string
token_type: string
expires_in: number
user_id: number
nickname?: string
}
export interface Parent {
user_id: number
openid: string
unionid?: string
nickname?: string
avatar_url?: string
phone?: string
status: number
}
export async function wechatLogin(data: WechatLoginPayload): Promise<LoginSession> {
const session = await request<LoginSession>('/banban/auth/login', {
method: 'POST',
data,
})
saveLoginSession(session)
return session
}
export async function getParent(userId: number): Promise<Parent> {
return request<Parent>(`/banban/parents/${userId}`)
}
export async function updateParent(
userId: number,
data: { nickname?: string; avatar_url?: string; phone?: string }
): Promise<Parent> {
return request<Parent>(`/banban/parents/${userId}`, {
method: 'PATCH',
data,
})
}
export function getToken(): string {
return getStoredToken()
}
export function clearToken(): void {
clearLoginSession()
}
export function getCurrentUserId(): number {
return getStoredCurrentUserId()
}