Browse Source

添加添加登录过期处理

pull/10/head
王军 5 years ago
parent
commit
da11544db5
  1. 1
      vben271/package.json
  2. 5
      vben271/src/router/guard/permissionGuard.ts
  3. 5
      vben271/src/services/ServiceProxyBase.ts
  4. 18
      vben271/src/store/modules/user.ts

1
vben271/package.json

@ -43,6 +43,7 @@
"axios": "^0.21.1",
"crypto-js": "^4.1.1",
"echarts": "^5.1.2",
"jwt-decode": "^3.1.2",
"lodash-es": "^4.17.21",
"mockjs": "^1.1.0",
"nprogress": "^0.2.0",

5
vben271/src/router/guard/permissionGuard.ts

@ -39,6 +39,11 @@ export function createPermissionGuard(router: Router) {
// token does not exist
if (!token) {
if (!to.path.includes('/oidc'))
if (userStore.checkUserLoginExpire) {
router.replace(PageEnum.BASE_LOGIN);
return;
}
// You can access without permission. You need to set the routing meta.ignoreAuth to true
if (to.meta.ignoreAuth) {
next();

5
vben271/src/services/ServiceProxyBase.ts

@ -12,6 +12,11 @@ export class ServiceProxyBase {
const guard: boolean = this.urlGuard(options.url as string);
if (!guard) {
const userStore = useUserStoreWithOut();
if (userStore.checkUserLoginExpire) {
router.replace(PageEnum.BASE_LOGIN);
return;
}
const { token, language } = this.buildRequestMessage();
// 添加header
options.headers = {

18
vben271/src/store/modules/user.ts

@ -22,6 +22,7 @@ import { usePermissionStore } from '/@/store/modules/permission';
import { RouteRecordRaw } from 'vue-router';
import { PAGE_NOT_FOUND_ROUTE } from '/@/router/routes/basic';
import { LoginInput, AccountServiceProxy } from '/@/services/ServiceProxies';
import jwt_decode from 'jwt-decode';
interface UserState {
userInfo: Nullable<UserInfo>;
token?: string;
@ -65,6 +66,23 @@ export const useUserStore = defineStore({
getLanguage(): string {
return this.language || getAuthCache<string>(ABP_LOCALE_KEY);
},
checkUserLoginExpire(): boolean {
try {
const userStore = useUserStoreWithOut();
const token = userStore.getToken;
if (!token) return true;
const decoded: any = jwt_decode(token);
// 获取当前时间戳
let currentTimeStamp = new Date().getTime() / 1000;
if (currentTimeStamp >= decoded.exp) {
return true;
} else {
return false;
}
} catch (error) {
return true;
}
},
},
actions: {
setToken(info: string | undefined) {

Loading…
Cancel
Save