Files
CosScene/clients/store/user.js
T
2026-05-09 16:40:29 +08:00

38 lines
1.1 KiB
JavaScript

import { defineStore } from "pinia";
import { getMyInfo } from "@/api/user";
export const useUserStore = defineStore("user", {
state: () => ({
token: uni.getStorageSync("access_token") || "",
refreshToken: uni.getStorageSync("refresh_token") || "",
userInfo: null,
isLoggedIn: !!uni.getStorageSync("access_token"),
}),
actions: {
setTokens(accessToken, refreshToken) {
this.token = accessToken;
this.refreshToken = refreshToken;
this.isLoggedIn = true;
uni.setStorageSync("access_token", accessToken);
uni.setStorageSync("refresh_token", refreshToken);
},
async fetchUserInfo() {
try {
const data = await getMyInfo();
this.userInfo = data;
} catch (e) {
console.error("获取用户信息失败", e);
}
},
logout() {
this.token = "";
this.refreshToken = "";
this.userInfo = null;
this.isLoggedIn = false;
uni.removeStorageSync("access_token");
uni.removeStorageSync("refresh_token");
uni.reLaunch({ url: "/pages/login/index" });
},
},
});