import { defineStore } from 'pinia' import { api, jApi } from 'boot/axios' export const userStore = defineStore('user', { state: () => ({ token: null, id: null, name: null, nickname: null }), getters: { loggedIn: state => state.token != null }, actions: { async login (user, password) { const params = { user, password } const res = await api.post('Accounts/login', params) localStorage.setItem('vnToken', res.data.token) const userData = await jApi.getObject( 'SELECT id, nickname FROM account.myUser' ) this.$patch({ token: res.data.token, name: user, id: userData.id, nickname: userData.nickname }) }, async logout () { if (localStorage.getItem('vnToken') != null) { await api.post('Accounts/logout') } localStorage.removeItem('vnToken') this.$reset() } } })