refactor: ♻️ 注销清空路由位置调整
Former-commit-id: e06d8f6551f15bf8bb7794501069844c7e769a3c
This commit is contained in:
@@ -114,7 +114,6 @@ const router = createRouter({
|
|||||||
*/
|
*/
|
||||||
export function resetRouter() {
|
export function resetRouter() {
|
||||||
router.replace({ path: "/login" });
|
router.replace({ path: "/login" });
|
||||||
location.reload();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
import { defineStore } from 'pinia';
|
import { defineStore } from "pinia";
|
||||||
|
|
||||||
import { loginApi, logoutApi } from '@/api/auth';
|
import { loginApi, logoutApi } from "@/api/auth";
|
||||||
import { getUserInfo } from '@/api/user';
|
import { getUserInfo } from "@/api/user";
|
||||||
import { resetRouter } from '@/router';
|
import { resetRouter } from "@/router";
|
||||||
import { store } from '@/store';
|
import { store } from "@/store";
|
||||||
|
|
||||||
import { LoginData } from '@/api/auth/types';
|
import { LoginData } from "@/api/auth/types";
|
||||||
import { UserInfo } from '@/api/user/types';
|
import { UserInfo } from "@/api/user/types";
|
||||||
|
|
||||||
import { useStorage } from '@vueuse/core';
|
import { useStorage } from "@vueuse/core";
|
||||||
|
|
||||||
export const useUserStore = defineStore('user', () => {
|
export const useUserStore = defineStore("user", () => {
|
||||||
// state
|
// state
|
||||||
const token = useStorage('accessToken', '');
|
const token = useStorage("accessToken", "");
|
||||||
const nickname = ref('');
|
const nickname = ref("");
|
||||||
const avatar = ref('');
|
const avatar = ref("");
|
||||||
const roles = ref<Array<string>>([]); // 用户角色编码集合 → 判断路由权限
|
const roles = ref<Array<string>>([]); // 用户角色编码集合 → 判断路由权限
|
||||||
const perms = ref<Array<string>>([]); // 用户权限编码集合 → 判断按钮权限
|
const perms = ref<Array<string>>([]); // 用户权限编码集合 → 判断按钮权限
|
||||||
|
|
||||||
@@ -27,12 +27,12 @@ export const useUserStore = defineStore('user', () => {
|
|||||||
function login(loginData: LoginData) {
|
function login(loginData: LoginData) {
|
||||||
return new Promise<void>((resolve, reject) => {
|
return new Promise<void>((resolve, reject) => {
|
||||||
loginApi(loginData)
|
loginApi(loginData)
|
||||||
.then(response => {
|
.then((response) => {
|
||||||
const { tokenType, accessToken } = response.data;
|
const { tokenType, accessToken } = response.data;
|
||||||
token.value = tokenType + ' ' + accessToken; // Bearer eyJhbGciOiJIUzI1NiJ9.xxx.xxx
|
token.value = tokenType + " " + accessToken; // Bearer eyJhbGciOiJIUzI1NiJ9.xxx.xxx
|
||||||
resolve();
|
resolve();
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch((error) => {
|
||||||
reject(error);
|
reject(error);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -44,10 +44,10 @@ export const useUserStore = defineStore('user', () => {
|
|||||||
getUserInfo()
|
getUserInfo()
|
||||||
.then(({ data }) => {
|
.then(({ data }) => {
|
||||||
if (!data) {
|
if (!data) {
|
||||||
return reject('Verification failed, please Login again.');
|
return reject("Verification failed, please Login again.");
|
||||||
}
|
}
|
||||||
if (!data.roles || data.roles.length <= 0) {
|
if (!data.roles || data.roles.length <= 0) {
|
||||||
reject('getUserInfo: roles must be a non-null array!');
|
reject("getUserInfo: roles must be a non-null array!");
|
||||||
}
|
}
|
||||||
nickname.value = data.nickname;
|
nickname.value = data.nickname;
|
||||||
avatar.value = data.avatar;
|
avatar.value = data.avatar;
|
||||||
@@ -55,7 +55,7 @@ export const useUserStore = defineStore('user', () => {
|
|||||||
perms.value = data.perms;
|
perms.value = data.perms;
|
||||||
resolve(data);
|
resolve(data);
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch((error) => {
|
||||||
reject(error);
|
reject(error);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -68,9 +68,10 @@ export const useUserStore = defineStore('user', () => {
|
|||||||
.then(() => {
|
.then(() => {
|
||||||
resetRouter();
|
resetRouter();
|
||||||
resetToken();
|
resetToken();
|
||||||
|
location.reload(); // 清空路由
|
||||||
resolve();
|
resolve();
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch((error) => {
|
||||||
reject(error);
|
reject(error);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -78,9 +79,9 @@ export const useUserStore = defineStore('user', () => {
|
|||||||
|
|
||||||
// 重置
|
// 重置
|
||||||
function resetToken() {
|
function resetToken() {
|
||||||
token.value = '';
|
token.value = "";
|
||||||
nickname.value = '';
|
nickname.value = "";
|
||||||
avatar.value = '';
|
avatar.value = "";
|
||||||
roles.value = [];
|
roles.value = [];
|
||||||
perms.value = [];
|
perms.value = [];
|
||||||
}
|
}
|
||||||
@@ -93,7 +94,7 @@ export const useUserStore = defineStore('user', () => {
|
|||||||
login,
|
login,
|
||||||
getInfo,
|
getInfo,
|
||||||
logout,
|
logout,
|
||||||
resetToken
|
resetToken,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user