|
|
@@ -1,15 +1,9 @@
|
|
|
import Taro from '@tarojs/taro'
|
|
|
-import { authApi } from '../api'
|
|
|
+import { authClient } from '../api'
|
|
|
+import { InferResponseType } from 'hono'
|
|
|
|
|
|
// 用户类型定义
|
|
|
-export interface User {
|
|
|
- id: number
|
|
|
- username: string
|
|
|
- email?: string
|
|
|
- avatar?: string
|
|
|
- createdAt: string
|
|
|
- updatedAt: string
|
|
|
-}
|
|
|
+export type User = InferResponseType<typeof authClient.me.$get, 200>
|
|
|
|
|
|
// 认证状态管理
|
|
|
class AuthManager {
|
|
|
@@ -61,8 +55,13 @@ class AuthManager {
|
|
|
// 登录
|
|
|
async login(username: string, password: string): Promise<User> {
|
|
|
try {
|
|
|
- const response = await authApi.login({ username, password })
|
|
|
- const { token, user } = response
|
|
|
+ const response = await authClient.login.$post({
|
|
|
+ json: { username, password }
|
|
|
+ })
|
|
|
+ if (response.status !== 200) {
|
|
|
+ throw new Error('登录失败')
|
|
|
+ }
|
|
|
+ const { token, user } = await response.json()
|
|
|
|
|
|
this.setToken(token)
|
|
|
this.setUserInfo(user)
|
|
|
@@ -80,8 +79,13 @@ class AuthManager {
|
|
|
email?: string
|
|
|
}): Promise<User> {
|
|
|
try {
|
|
|
- const response = await authApi.register(data)
|
|
|
- const { token, user } = response
|
|
|
+ const response = await authClient.register.$post({
|
|
|
+ json: data
|
|
|
+ })
|
|
|
+ if (response.status !== 201) {
|
|
|
+ throw new Error('注册失败')
|
|
|
+ }
|
|
|
+ const { token, user } = await response.json()
|
|
|
|
|
|
this.setToken(token)
|
|
|
this.setUserInfo(user)
|
|
|
@@ -95,7 +99,10 @@ class AuthManager {
|
|
|
// 登出
|
|
|
async logout(): Promise<void> {
|
|
|
try {
|
|
|
- await authApi.logout()
|
|
|
+ const response = await authClient.logout.$post({})
|
|
|
+ if (response.status !== 200) {
|
|
|
+ throw new Error('登出失败')
|
|
|
+ }
|
|
|
} catch (error) {
|
|
|
console.error('Logout error:', error)
|
|
|
} finally {
|
|
|
@@ -112,7 +119,11 @@ class AuthManager {
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
- const user = await authApi.getCurrentUser()
|
|
|
+ const response = await authClient.me.$get({})
|
|
|
+ if (response.status !== 200) {
|
|
|
+ throw new Error('获取用户信息失败')
|
|
|
+ }
|
|
|
+ const user = await response.json()
|
|
|
this.setUserInfo(user)
|
|
|
return user
|
|
|
} catch (error) {
|