48 lines
884 B
JavaScript
48 lines
884 B
JavaScript
import { defineStore } from 'pinia'
|
|
|
|
export const useUserStore = defineStore('user', {
|
|
state: () => ({
|
|
token: uni.getStorageSync('token') || '',
|
|
userInfo: uni.getStorageSync('userInfo') || null
|
|
}),
|
|
|
|
getters: {
|
|
isLoggedIn: (state) => !!state.token,
|
|
username: (state) => state.userInfo?.username || '',
|
|
nickname: (state) => state.userInfo?.nickname || ''
|
|
},
|
|
|
|
actions: {
|
|
setToken(token) {
|
|
this.token = token
|
|
uni.setStorageSync('token', token)
|
|
},
|
|
|
|
setUserInfo(userInfo) {
|
|
this.userInfo = userInfo
|
|
uni.setStorageSync('userInfo', userInfo)
|
|
},
|
|
|
|
login(token, userInfo) {
|
|
this.setToken(token)
|
|
this.setUserInfo(userInfo)
|
|
},
|
|
|
|
logout() {
|
|
this.token = ''
|
|
this.userInfo = null
|
|
uni.removeStorageSync('token')
|
|
uni.removeStorageSync('userInfo')
|
|
}
|
|
}
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|