diff --git a/src/config/axios/service.ts b/src/config/axios/service.ts index 1a4741b69..46637e79b 100644 --- a/src/config/axios/service.ts +++ b/src/config/axios/service.ts @@ -47,8 +47,7 @@ service.interceptors.request.use( let isToken = (config!.headers || {}).isToken === false whiteList.some((v) => { if (config.url) { - config.url.indexOf(v) > -1 - return (isToken = false) + return (isToken = config.url.indexOf(v) > -1) } }) if (getAccessToken() && !isToken) { diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 1f801fefa..392dde9fc 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -44,13 +44,14 @@ export const useUserStore = defineStore('admin-user', { } }, actions: { - async setUserInfoAction() { + async setUserInfoAction(force = false) { if (!getAccessToken()) { this.resetState() return null } let userInfo = wsCache.get(CACHE_KEY.USER) - if (!userInfo) { + // 登录时指定force=true,强制更新菜单,避免停留在login的窗口登录后用户信息依然没有替换为最后一次登录用户的问题 + if (force || !userInfo) { userInfo = await getInfo() } this.permissions = userInfo.permissions diff --git a/src/views/Login/components/LoginForm.vue b/src/views/Login/components/LoginForm.vue index ffadf8b57..5af13006d 100644 --- a/src/views/Login/components/LoginForm.vue +++ b/src/views/Login/components/LoginForm.vue @@ -152,6 +152,7 @@ import { useIcon } from '@/hooks/web/useIcon' import * as authUtil from '@/utils/auth' import { usePermissionStore } from '@/store/modules/permission' +import { useUserStoreWithOut } from '@/store/modules/user' import * as LoginApi from '@/api/login' import { LoginStateEnum, useFormValid, useLoginState } from './useLogin' @@ -255,6 +256,10 @@ const handleLogin = async (params) => { authUtil.removeLoginForm() } authUtil.setToken(res) + const userStore = useUserStoreWithOut() + await userStore.setUserInfoAction(true) + await permissionStore.generateRoutes() + if (!redirect.value) { redirect.value = '/' }