32 lines
780 B
JavaScript
32 lines
780 B
JavaScript
import { defineStore } from 'pinia'
|
|
import { ref } from 'vue'
|
|
|
|
export const useUserStore = defineStore('user', () => {
|
|
const token = ref(localStorage.getItem('token') || '')
|
|
const loginUser = ref(JSON.parse(localStorage.getItem('loginUser')) || null)
|
|
const login = (userInfo) => {
|
|
token.value = userInfo.token
|
|
loginUser.value = userInfo.loginUser
|
|
localStorage.setItem('token', token.value)
|
|
localStorage.setItem('loginUser', JSON.stringify(loginUser.value))
|
|
}
|
|
|
|
const logout = () => {
|
|
token.value = ''
|
|
loginUser.value = null
|
|
localStorage.removeItem('token')
|
|
localStorage.removeItem('loginUser')
|
|
}
|
|
|
|
const isLoggedIn = () => {
|
|
return !!token.value
|
|
}
|
|
|
|
return {
|
|
token,
|
|
loginUser,
|
|
login,
|
|
logout,
|
|
isLoggedIn
|
|
}
|
|
}) |