feat: 支持多标签页打开已经登录的系统后无需再登录并添加7天内免登录功能 (#747)

* feat: 支持多标签页打开已经登录的系统后无需再登录

* feat: 添加`7`天内免登录功能
This commit is contained in:
xiaoming
2023-10-07 15:00:03 +08:00
committed by GitHub
parent be2de405ab
commit 7e7b6fee7a
12 changed files with 131 additions and 93 deletions

View File

@@ -41,4 +41,5 @@ export type userType = {
roles?: Array<string>;
verifyCode?: string;
currentPage?: number;
isRemembered?: boolean;
};

View File

@@ -3,24 +3,25 @@ import { store } from "@/store";
import { userType } from "./types";
import { routerArrays } from "@/layout/types";
import { router, resetRouter } from "@/router";
import { storageSession } from "@pureadmin/utils";
import { storageLocal } from "@pureadmin/utils";
import { getLogin, refreshTokenApi } from "@/api/user";
import { UserResult, RefreshTokenResult } from "@/api/user";
import { useMultiTagsStoreHook } from "@/store/modules/multiTags";
import { type DataInfo, setToken, removeToken, sessionKey } from "@/utils/auth";
import { type DataInfo, setToken, removeToken, userKey } from "@/utils/auth";
export const useUserStore = defineStore({
id: "pure-user",
state: (): userType => ({
// 用户名
username:
storageSession().getItem<DataInfo<number>>(sessionKey)?.username ?? "",
username: storageLocal().getItem<DataInfo<number>>(userKey)?.username ?? "",
// 页面级别权限
roles: storageSession().getItem<DataInfo<number>>(sessionKey)?.roles ?? [],
roles: storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? [],
// 前端生成的验证码(按实际需求替换)
verifyCode: "",
// 判断登录页面显示哪个组件0登录默认、1手机登录、2二维码登录、3注册、4忘记密码
currentPage: 0
currentPage: 0,
// 是否勾选了7天内免登录
isRemembered: false
}),
actions: {
/** 存储用户名 */
@@ -39,6 +40,10 @@ export const useUserStore = defineStore({
SET_CURRENTPAGE(value: number) {
this.currentPage = value;
},
/** 存储是否勾选了7天内免登录 */
SET_ISREMEMBERED(bool: boolean) {
this.isRemembered = bool;
},
/** 登入 */
async loginByUsername(data) {
return new Promise<UserResult>((resolve, reject) => {