登录相关
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
import { defineStore } from 'pinia';
|
||||
import http from '@/jtools/request/index';
|
||||
import { login,logout } from '@/jtools/api/login';
|
||||
import constants from '@/jtools/constants';
|
||||
import storage from '@/jtools/storage';
|
||||
|
||||
const user = defineStore({
|
||||
const useUserStore = defineStore({
|
||||
id: 'user',
|
||||
state: () => ({
|
||||
token: storage.get('token'),
|
||||
@@ -12,57 +12,43 @@ const user = defineStore({
|
||||
}),
|
||||
|
||||
actions: {
|
||||
// 登录
|
||||
showAuth() {
|
||||
// router.replaceAll('/pages/login/login');
|
||||
login(params) {
|
||||
// commit('isLogin', true);
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const resp = await login(params);
|
||||
if (resp.code === '0000') {
|
||||
// 保存登录信息,用于重新登录
|
||||
this.isLogin = true;
|
||||
this.token = resp.data.token;
|
||||
this.userInfo = resp.data
|
||||
storage.set('isLogin', true)
|
||||
storage.set('token', resp.data.token)
|
||||
storage.set('userInfo', resp.data)
|
||||
resolve(resp.data);
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 获取个人信息
|
||||
async getInfo() {
|
||||
const { error, data } = await userApi.profile();
|
||||
if (error !== 0) return;
|
||||
this.userInfo = data;
|
||||
return Promise.resolve(data);
|
||||
},
|
||||
|
||||
|
||||
// 设置token
|
||||
setToken(token = '') {
|
||||
if (token === '') {
|
||||
this.isLogin = false;
|
||||
this.token = ''
|
||||
this.userInfo = {}
|
||||
storage.set('token', '');
|
||||
storage.set('isLogin', false);
|
||||
storage.set('userInfo', {});
|
||||
} else {
|
||||
this.isLogin = true;
|
||||
this.token = token
|
||||
storage.set('token', token);
|
||||
storage.set('isLogin', true);
|
||||
}
|
||||
return this.isLogin;
|
||||
},
|
||||
|
||||
// 重置用户默认数据
|
||||
resetUserData() {
|
||||
this.setToken();
|
||||
},
|
||||
// 登出
|
||||
async logout(force = false) {
|
||||
if (!force) {
|
||||
const { error } = await userApi.logout();
|
||||
if (error === 0) {
|
||||
this.resetUserData();
|
||||
}
|
||||
}
|
||||
if (force) {
|
||||
logout(force = false) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.resetUserData();
|
||||
}
|
||||
|
||||
return !this.isLogin;
|
||||
uni.redirectTo({
|
||||
url: '/pages/login/login'
|
||||
})
|
||||
resolve();
|
||||
})
|
||||
},
|
||||
resetUserData() {
|
||||
this.isLogin = false;
|
||||
this.token = '';
|
||||
this.userInfo = {}
|
||||
storage.remove('isLogin')
|
||||
storage.remove('token')
|
||||
storage.remove('userInfo')
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
export default user;
|
||||
export default useUserStore;
|
||||
|
||||
Reference in New Issue
Block a user