fix: 修改同项目登录信息污染

This commit is contained in:
xuziqiang
2024-07-11 15:53:41 +08:00
parent 4d49ef4e42
commit 6137aaa4b6
19 changed files with 188 additions and 116 deletions

View File

@@ -4,6 +4,9 @@ import { authorizationService } from '/nerv-base/store/modules/authorization-ser
import { appConfigStore } from '/nerv-base/store/modules/app-config';
import { Cookies } from '/nerv-lib/util/cookie';
import { setRouteChange } from '/nerv-lib/util/routeChange';
console.log(import.meta.env.VITE_PUBLIC_PATH);
export function createPermissionGuard(router: Router, whiteNameList: string[]) {
const authorizationStore = authorizationService();
const appConfig = appConfigStore();
@@ -11,23 +14,26 @@ export function createPermissionGuard(router: Router, whiteNameList: string[]) {
if (!appConfig.userCustomRouterGuard) {
setRouteChange(to);
if (to?.query?.nervsid) {
if (to?.query?.nervsid !== Cookies.get('nervsid')) {
Cookies.set('nervsid', to?.query?.nervsid);
if (to?.query?.nervsid !== Cookies.get(`${import.meta.env.VITE_PUBLIC_PATH}-nervsid`)) {
Cookies.set(`${import.meta.env.VITE_PUBLIC_PATH}-nervsid`, to?.query?.nervsid);
try {
const info = await appConfig.userInfo();
await authorizationStore.initUserResource();
authorizationStore.initMenuResource();
appConfig.setUserInfo(info.data);
info.success
? window.sessionStorage.setItem('userInfo', JSON.stringify(info.data))
? window.sessionStorage.setItem(
import.meta.env.VITE_PUBLIC_PATH,
JSON.stringify(info.data),
)
: '';
} catch (err) {
Cookies.remove('nervsid');
Cookies.remove(`${import.meta.env.VITE_PUBLIC_PATH}-nervsid`);
}
}
}
if (
!Cookies.get('nervsid') &&
!Cookies.get(`${import.meta.env.VITE_PUBLIC_PATH}-nervsid`) &&
to.fullPath !== '/login' &&
to.name &&
!whiteNameList.includes(to.name as string)
@@ -36,15 +42,19 @@ export function createPermissionGuard(router: Router, whiteNameList: string[]) {
next({ name: 'login' });
} else {
// 存储用户信息
if (to.fullPath !== '/login') {
const initUserInfo = window.sessionStorage['userInfo'];
if (!initUserInfo && Cookies.get('nervsid')) {
const initUserInfo = window.sessionStorage[import.meta.env.VITE_PUBLIC_PATH];
if (!initUserInfo && Cookies.get(`${import.meta.env.VITE_PUBLIC_PATH}-nervsid`)) {
try {
const info = await appConfig.userInfo();
info.data ? window.sessionStorage.setItem('userInfo', JSON.stringify(info.data)) : '';
info.data
? window.sessionStorage.setItem(
import.meta.env.VITE_PUBLIC_PATH,
JSON.stringify(info.data),
)
: '';
} catch (err) {
Cookies.remove('nervsid');
Cookies.remove(`${import.meta.env.VITE_PUBLIC_PATH}-nervsid`);
}
} else {
if (initUserInfo) {