hedera-web/src/stores/user.js

43 lines
930 B
JavaScript

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()
}
}
})