auth.ts
696 Bytes
import { defineStore } from 'pinia'
import { ref } from 'vue'
export const useAuthStore = defineStore('auth', () => {
const token = ref(localStorage.getItem('token') || '')
const userInfo = ref<any>(JSON.parse(localStorage.getItem('userInfo') || 'null'))
function setToken(t: string) {
token.value = t
localStorage.setItem('token', t)
}
function setUserInfo(info: any) {
userInfo.value = info
localStorage.setItem('userInfo', JSON.stringify(info))
}
function logout() {
token.value = ''
userInfo.value = null
localStorage.removeItem('token')
localStorage.removeItem('userInfo')
}
return { token, userInfo, setToken, setUserInfo, logout }
})