21 lines
575 B
JavaScript
21 lines
575 B
JavaScript
import { defineStore } from 'pinia'
|
|
import { useStorage } from '@vueuse/core'
|
|
import axios from "axios";
|
|
import { ROLES } from '../roles';
|
|
|
|
export const useUserStore = defineStore('user', {
|
|
state: () => ({
|
|
role: useStorage('role', ROLES.USER),
|
|
token: useStorage('token', ''),
|
|
userInfo: useStorage('userInfo', null)
|
|
}),
|
|
actions: {
|
|
async login(credentials) {
|
|
const { data } = await axios.post('/api/login', credentials)
|
|
this.token = data.token
|
|
this.userInfo = data.user
|
|
this.role = data.role; // 从后端获取角色
|
|
}
|
|
}
|
|
})
|