55 lines
1.3 KiB
JavaScript
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')
|
|
}
|
|
}
|
|
})
|