优化前端认证与类型管理

This commit is contained in:
yml
2026-05-25 01:59:59 +08:00
parent eafa6f96b2
commit 2cfd3d9422
28 changed files with 435 additions and 280 deletions
+14 -8
View File
@@ -1,11 +1,12 @@
import { defineStore } from 'pinia'
import { fetchAdminMe, loginAdmin, type AdminUser } from '@/api/adminAuth'
import { clearAuthStorage, getAccessToken, getRefreshToken, setAuthTokens } from '@/utils/authStorage'
export const useAdminSessionStore = defineStore('adminSession', {
state: () => ({
token: localStorage.getItem('admin_access_token') || '',
refreshToken: localStorage.getItem('admin_refresh_token') || '',
token: getAccessToken('admin'),
refreshToken: getRefreshToken('admin'),
adminId: Number(localStorage.getItem('admin_id') || 0),
username: localStorage.getItem('admin_username') || '',
nickname: '',
@@ -27,16 +28,21 @@ export const useAdminSessionStore = defineStore('adminSession', {
this.adminId = 0
this.username = ''
this.nickname = ''
localStorage.removeItem('admin_access_token')
localStorage.removeItem('admin_refresh_token')
localStorage.removeItem('admin_id')
localStorage.removeItem('admin_username')
clearAuthStorage('admin')
},
syncFromStorage() {
this.token = getAccessToken('admin')
this.refreshToken = getRefreshToken('admin')
this.adminId = Number(localStorage.getItem('admin_id') || 0)
this.username = localStorage.getItem('admin_username') || ''
},
applySession(admin: AdminUser, accessToken: string, refreshToken: string) {
this.token = accessToken
this.refreshToken = refreshToken
localStorage.setItem('admin_access_token', accessToken)
localStorage.setItem('admin_refresh_token', refreshToken)
setAuthTokens('admin', {
access_token: accessToken,
refresh_token: refreshToken,
})
this.applyAdmin(admin)
},
applyAdmin(admin: AdminUser) {
+19 -11
View File
@@ -1,11 +1,12 @@
import { defineStore } from "pinia";
import { fetchMe, loginWithSms, updateMe, type AuthUser } from "@/api/auth";
import { clearAuthStorage, getAccessToken, getRefreshToken, setAuthTokens } from "@/utils/authStorage";
export const useSessionStore = defineStore("session", {
state: () => ({
token: localStorage.getItem("access_token") || "",
refreshToken: localStorage.getItem("refresh_token") || "",
token: getAccessToken("user"),
refreshToken: getRefreshToken("user"),
userId: Number(localStorage.getItem("user_id") || 0),
phone: localStorage.getItem("phone") || "",
nickname: localStorage.getItem("nickname") || "",
@@ -46,21 +47,28 @@ export const useSessionStore = defineStore("session", {
this.refreshToken = "";
this.userId = 0;
this.phone = "";
this.nickname = "";
this.avatarUrl = "";
this.realnameStatus = "unknown";
localStorage.removeItem("access_token");
localStorage.removeItem("refresh_token");
localStorage.removeItem("user_id");
localStorage.removeItem("phone");
localStorage.removeItem("nickname");
localStorage.removeItem("avatar_url");
localStorage.removeItem("realname_status");
clearAuthStorage("user");
},
syncFromStorage() {
this.token = getAccessToken("user");
this.refreshToken = getRefreshToken("user");
this.userId = Number(localStorage.getItem("user_id") || 0);
this.phone = localStorage.getItem("phone") || "";
this.nickname = localStorage.getItem("nickname") || "";
this.avatarUrl = localStorage.getItem("avatar_url") || "";
this.realnameStatus = localStorage.getItem("realname_status") || "unknown";
},
applySession(user: AuthUser, accessToken: string, refreshToken: string) {
this.token = accessToken;
this.refreshToken = refreshToken;
this.userId = user.id;
localStorage.setItem("access_token", accessToken);
localStorage.setItem("refresh_token", refreshToken);
setAuthTokens("user", {
access_token: accessToken,
refresh_token: refreshToken,
});
localStorage.setItem("user_id", String(user.id));
this.applyUser(user);
},