35 lines
922 B
JavaScript
35 lines
922 B
JavaScript
import { defineStore } from 'pinia';
|
|
import { ref } from 'vue';
|
|
import { login as loginApi } from '../api/CommonApi'; // 假设你的API调用函数是这样组织的
|
|
|
|
export const useUserStore = defineStore('user', {
|
|
state: () => ({
|
|
token: '',
|
|
userInfo: null,
|
|
}),
|
|
actions: {
|
|
async login(username, password) {
|
|
try {
|
|
const response = await loginApi({ username, password });
|
|
if (response && response.token) {
|
|
this.token = response.token;
|
|
// 你可能还需要一个接口来获取用户信息
|
|
// this.userInfo = await getUserInfo();
|
|
return true;
|
|
}
|
|
return false;
|
|
} catch (error) {
|
|
console.error('Login failed:', error);
|
|
return false;
|
|
}
|
|
},
|
|
logout() {
|
|
this.token = '';
|
|
this.userInfo = null;
|
|
},
|
|
},
|
|
getters: {
|
|
isLoggedIn: (state) => !!state.token,
|
|
},
|
|
persist: true,
|
|
}); |