优化前端认证与类型管理
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user