🎨 优化登陆验证逻辑
This commit is contained in:
@@ -1 +1 @@
|
||||
VITE_API_BASE_URL=http://localhost:8888
|
||||
VITE_API_BASE_URL=http://192.168.100.160:8888
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
import apiClient from './client'
|
||||
|
||||
// 通用响应结构
|
||||
export interface ApiResponse<T> {
|
||||
code: number
|
||||
data: T
|
||||
msg: string
|
||||
}
|
||||
|
||||
// 类型定义
|
||||
export interface RegisterRequest {
|
||||
username: string
|
||||
@@ -61,12 +68,12 @@ export const authApi = {
|
||||
},
|
||||
|
||||
// 用户登录
|
||||
login: (data: LoginRequest): Promise<{ data: LoginResponse }> => {
|
||||
login: (data: LoginRequest): Promise<ApiResponse<LoginResponse>> => {
|
||||
return apiClient.post('/app/auth/login', data)
|
||||
},
|
||||
|
||||
// 刷新 Token
|
||||
refreshToken: (refreshToken: string): Promise<{ data: LoginResponse }> => {
|
||||
refreshToken: (refreshToken: string): Promise<ApiResponse<LoginResponse>> => {
|
||||
return apiClient.post('/app/auth/refresh', { refreshToken })
|
||||
},
|
||||
|
||||
@@ -76,7 +83,7 @@ export const authApi = {
|
||||
},
|
||||
|
||||
// 获取用户信息
|
||||
getUserInfo: (): Promise<{ data: User }> => {
|
||||
getUserInfo: (): Promise<ApiResponse<User>> => {
|
||||
return apiClient.get('/app/auth/userinfo')
|
||||
},
|
||||
|
||||
|
||||
@@ -18,6 +18,12 @@ export default function LoginPage() {
|
||||
|
||||
try {
|
||||
const response = await authApi.login({ username, password })
|
||||
|
||||
// 检查业务 code,只有 code === 0 才视为登录成功
|
||||
if (!response || response.code !== 0 || !response.data) {
|
||||
throw new Error(response?.msg || '用户名或密码错误')
|
||||
}
|
||||
|
||||
const { token, refreshToken, user } = response.data
|
||||
|
||||
localStorage.setItem('token', token)
|
||||
@@ -26,7 +32,8 @@ export default function LoginPage() {
|
||||
|
||||
navigate('/profile')
|
||||
} catch (err: any) {
|
||||
setError(err || '登录失败,请检查用户名和密码')
|
||||
const message = err?.message || err || '登录失败,请检查用户名和密码'
|
||||
setError(message)
|
||||
} finally {
|
||||
setLoading(false)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user