|
@@ -25,6 +25,7 @@ interface UserState {
|
|
|
userInfo: Nullable<UserInfo>;
|
|
|
token?: string;
|
|
|
roleList: RoleEnum[];
|
|
|
+ sessionTimeout?: boolean;
|
|
|
}
|
|
|
|
|
|
export const useUserStore = defineStore({
|
|
@@ -36,6 +37,8 @@ export const useUserStore = defineStore({
|
|
|
token: undefined,
|
|
|
// roleList
|
|
|
roleList: [],
|
|
|
+ // Whether the login expired
|
|
|
+ sessionTimeout: false,
|
|
|
}),
|
|
|
getters: {
|
|
|
getUserInfo(): UserInfo {
|
|
@@ -47,9 +50,12 @@ export const useUserStore = defineStore({
|
|
|
getRoleList(): RoleEnum[] {
|
|
|
return this.roleList.length > 0 ? this.roleList : getAuthCache<RoleEnum[]>(ROLES_KEY);
|
|
|
},
|
|
|
+ getSessionTimeout(): boolean {
|
|
|
+ return !!this.sessionTimeout;
|
|
|
+ },
|
|
|
},
|
|
|
actions: {
|
|
|
- setToken(info: string) {
|
|
|
+ setToken(info: string | undefined) {
|
|
|
this.token = info;
|
|
|
setAuthCache(TOKEN_KEY, info);
|
|
|
},
|
|
@@ -61,10 +67,14 @@ export const useUserStore = defineStore({
|
|
|
this.userInfo = info;
|
|
|
setAuthCache(USER_INFO_KEY, info);
|
|
|
},
|
|
|
+ setSessionTimeout(flag: boolean) {
|
|
|
+ this.sessionTimeout = flag;
|
|
|
+ },
|
|
|
resetState() {
|
|
|
this.userInfo = null;
|
|
|
this.token = '';
|
|
|
this.roleList = [];
|
|
|
+ this.sessionTimeout = false;
|
|
|
},
|
|
|
/**
|
|
|
* @description: login
|
|
@@ -85,7 +95,9 @@ export const useUserStore = defineStore({
|
|
|
// get user info
|
|
|
const userInfo = await this.getUserInfoAction({ userId });
|
|
|
|
|
|
- goHome && (await router.replace(PageEnum.BASE_HOME));
|
|
|
+ const sessionTimeout = this.sessionTimeout;
|
|
|
+ sessionTimeout && this.setSessionTimeout(false);
|
|
|
+ !sessionTimeout && goHome && (await router.replace(PageEnum.BASE_HOME));
|
|
|
return userInfo;
|
|
|
} catch (error) {
|
|
|
return null;
|