Commit a36825a6d423aae9aaf1936ce55947ba8c2104b0

Authored by 无木
1 parent 628e8206

fix: add loss action for userStore

Showing 1 changed file with 23 additions and 19 deletions
src/store/modules/user.ts
... ... @@ -94,29 +94,33 @@ export const useUserStore = defineStore({
94 94  
95 95 // save token
96 96 this.setToken(token);
97   - // get user info
98   - const userInfo = await this.getUserInfoAction();
99   -
100   - const sessionTimeout = this.sessionTimeout;
101   - if (sessionTimeout) {
102   - this.setSessionTimeout(false);
103   - } else if (goHome) {
104   - const permissionStore = usePermissionStore();
105   - if (!permissionStore.isDynamicAddedRoute) {
106   - const routes = await permissionStore.buildRoutesAction();
107   - routes.forEach((route) => {
108   - router.addRoute(route as unknown as RouteRecordRaw);
109   - });
110   - router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw);
111   - permissionStore.setDynamicAddedRoute(true);
112   - }
113   - await router.replace(userInfo.homePath || PageEnum.BASE_HOME);
114   - }
115   - return userInfo;
  97 + return this.afterLoginAction(goHome);
116 98 } catch (error) {
117 99 return Promise.reject(error);
118 100 }
119 101 },
  102 + async afterLoginAction(goHome?: boolean): Promise<GetUserInfoModel | null> {
  103 + if (!this.getToken) return null;
  104 + // get user info
  105 + const userInfo = await this.getUserInfoAction();
  106 +
  107 + const sessionTimeout = this.sessionTimeout;
  108 + if (sessionTimeout) {
  109 + this.setSessionTimeout(false);
  110 + } else {
  111 + const permissionStore = usePermissionStore();
  112 + if (!permissionStore.isDynamicAddedRoute) {
  113 + const routes = await permissionStore.buildRoutesAction();
  114 + routes.forEach((route) => {
  115 + router.addRoute(route as unknown as RouteRecordRaw);
  116 + });
  117 + router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw);
  118 + permissionStore.setDynamicAddedRoute(true);
  119 + }
  120 + goHome && (await router.replace(userInfo.homePath || PageEnum.BASE_HOME));
  121 + }
  122 + return userInfo;
  123 + },
120 124 async getUserInfoAction(): Promise<UserInfo> {
121 125 const userInfo = await getUserInfo();
122 126 const { roles = [] } = userInfo;
... ...