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,29 +94,33 @@ export const useUserStore = defineStore({
94 94
95 // save token 95 // save token
96 this.setToken(token); 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 } catch (error) { 98 } catch (error) {
117 return Promise.reject(error); 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 async getUserInfoAction(): Promise<UserInfo> { 124 async getUserInfoAction(): Promise<UserInfo> {
121 const userInfo = await getUserInfo(); 125 const userInfo = await getUserInfo();
122 const { roles = [] } = userInfo; 126 const { roles = [] } = userInfo;