import { post } from './request' import type { UserProfileResponse } from '@mp-pilates/shared' interface LoginResponse { readonly token: string readonly user: UserProfileResponse } export async function wxLogin(): Promise { return new Promise((resolve, reject) => { uni.login({ provider: 'weixin', success: async (loginRes) => { try { const result = await post('/auth/login', { code: loginRes.code, }) uni.setStorageSync('token', result.token) resolve(result) } catch (err) { reject(err) } }, fail: (err) => { reject(new Error(err.errMsg || '微信登录失败')) }, }) }) } export async function wxBindPhone(e: { readonly detail: { readonly encryptedData: string; readonly iv: string } }): Promise { const { encryptedData, iv } = e.detail return post('/auth/phone', { encryptedData, iv }) } export function isLoggedIn(): boolean { return !!uni.getStorageSync('token') } export function logout(): void { uni.removeStorageSync('token') }