feat(admin): 新增模板管理功能并完善用户认证
- 新增模板管理模块,包含模板列表和详情页面 - 重构用户认证逻辑,支持用户ID存储和API调用 - 新增排行榜API接口和类型定义 - 更新环境配置,添加开发环境配置 - 优化表格操作钩子,增强类型安全性 - 新增文件上传工具类和验证工具函数 - 更新路由配置,支持模板详情页面导航 - 修复登录表单默认值问题
This commit is contained in:
@ -9,7 +9,7 @@ import { fetchGetUserInfo, fetchLogin } from '@/service/api'
|
||||
import { localStg } from '@/utils/storage'
|
||||
import { useRouteStore } from '../route'
|
||||
import { useTabStore } from '../tab'
|
||||
import { clearAuthStorage, getToken } from './shared'
|
||||
import { clearAuthStorage, getToken, getUserId } from './shared'
|
||||
|
||||
export const useAuthStore = defineStore(SetupStoreId.Auth, () => {
|
||||
const route = useRoute()
|
||||
@ -98,7 +98,6 @@ export const useAuthStore = defineStore(SetupStoreId.Auth, () => {
|
||||
*/
|
||||
async function login(userName: string, password: string, redirect = true) {
|
||||
startLoading()
|
||||
|
||||
const { data: loginToken, error } = await fetchLogin(userName, password)
|
||||
|
||||
if (!error) {
|
||||
@ -133,9 +132,10 @@ export const useAuthStore = defineStore(SetupStoreId.Auth, () => {
|
||||
// 1. stored in the localStorage, the later requests need it in headers
|
||||
localStg.set('token', loginToken.token)
|
||||
localStg.set('refreshToken', loginToken.refreshToken)
|
||||
localStg.set('userId', loginToken.id)
|
||||
|
||||
// 2. get user info
|
||||
const pass = await getUserInfo()
|
||||
const pass = await getUserInfo(loginToken.id)
|
||||
|
||||
if (pass) {
|
||||
token.value = loginToken.token
|
||||
@ -146,8 +146,8 @@ export const useAuthStore = defineStore(SetupStoreId.Auth, () => {
|
||||
return false
|
||||
}
|
||||
|
||||
async function getUserInfo() {
|
||||
const { data: info, error } = await fetchGetUserInfo()
|
||||
async function getUserInfo(userId: number) {
|
||||
const { data: info, error } = await fetchGetUserInfo(userId)
|
||||
|
||||
if (!error) {
|
||||
// update store
|
||||
@ -161,9 +161,10 @@ export const useAuthStore = defineStore(SetupStoreId.Auth, () => {
|
||||
|
||||
async function initUserInfo() {
|
||||
const hasToken = getToken()
|
||||
const userId = getUserId()
|
||||
|
||||
if (hasToken) {
|
||||
const pass = await getUserInfo()
|
||||
if (hasToken && userId) {
|
||||
const pass = await getUserInfo(userId)
|
||||
|
||||
if (!pass) {
|
||||
resetStore()
|
||||
|
||||
@ -5,8 +5,14 @@ export function getToken() {
|
||||
return localStg.get('token') || ''
|
||||
}
|
||||
|
||||
export function getUserId() {
|
||||
const userId = localStg.get('userId')
|
||||
return userId || 0
|
||||
}
|
||||
|
||||
/** Clear auth storage */
|
||||
export function clearAuthStorage() {
|
||||
localStg.remove('token')
|
||||
localStg.remove('refreshToken')
|
||||
localStg.remove('userId')
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user