Files
spring-festival-greetings/stores/user.js
2026-01-09 11:24:40 +08:00

55 lines
1.3 KiB
JavaScript

import { defineStore } from 'pinia'
import { wxLogin, wxGetUserProfile } from '@/utils/login.js'
import {getPlatformProvider} from '@/utils/system'
export const useUserStore = defineStore('user', {
state: () => ({
token: '',
userInfo: {}
}),
actions: {
setToken(token) {
this.token = token
uni.setStorageSync('token', token) // 持久化 tokenx
},
setUserInfo(userInfo) {
this.userInfo = userInfo
uni.setStorageSync('userInfo', JSON.stringify(userInfo)) // 持久化用户信息
},
loadFromStorage() {
const token = uni.getStorageSync('token')
const userInfoStr = uni.getStorageSync('userInfo')
if (token) this.token = token
if (userInfoStr) {
try {
this.userInfo = JSON.parse(userInfoStr)
} catch {
this.userInfo = {}
}
}
},
clear() {
this.token = ''
this.userInfo = {}
uni.removeStorageSync('token')
uni.removeStorageSync('userInfo')
},
loadUserInfo() {
const userStr = uni.getStorageSync('userInfo')
if (userStr) {
try {
this.userInfo = JSON.parse(userStr)
} catch (e) {
this.userInfo = {}
}
}
},
logout() {
this.userInfo = {}
this.token = ''
uni.removeStorageSync('userInfo')
uni.removeStorageSync('token')
}
}
})