优化前端认证与类型管理
This commit is contained in:
@@ -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