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:
@@ -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,
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user