refactor: ♻️ 注销清空路由位置调整

Former-commit-id: e06d8f6551f15bf8bb7794501069844c7e769a3c
This commit is contained in:
郝先瑞
2023-05-11 07:48:39 +08:00
parent f93b5a8eaa
commit 6852678cff
2 changed files with 24 additions and 24 deletions

View File

@@ -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;

View File

@@ -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,
}; };
}); });