feat(frontend): 添加基础设施模块

工具函数:
- utils/auth.ts,Token 存储、解析、过期校验

API 模块:
- api/request.ts,Axios 实例封装,请求/响应拦截器

状态管理:
- stores/auth.ts,认证状态管理(Pinia)

组合式函数:
- composables/useAuth.ts,认证逻辑封装

路由配置:
- router/index.ts,路由表定义、路由守卫(未登录重定向)
This commit is contained in:
2026-07-14 15:39:19 +08:00
parent fba7210fd1
commit 84394f4674
5 changed files with 261 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
import { getToken, setToken, removeToken, getUser, setUser, removeUser } from '@/utils/auth'
export const useAuthStore = defineStore('auth', () => {
const token = ref<string | null>(getToken())
const user = ref<any>(getUser())
function setAuth(newToken: string, newUser: any) {
token.value = newToken
user.value = newUser
setToken(newToken)
setUser(newUser)
}
function clearAuth() {
token.value = null
user.value = null
removeToken()
removeUser()
}
function isLoggedIn() {
return !!token.value
}
return {
token,
user,
setAuth,
clearAuth,
isLoggedIn,
}
})