From d3320038dcd300efe12dbbc8c661f71f3a9a264f Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Wed, 18 May 2022 23:51:06 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=88=20=E9=87=8D=E6=9E=84=E5=AE=89?= =?UTF-8?q?=E5=85=A8=E6=A1=86=E6=9E=B6=E5=BA=95=E5=B1=82=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/UserController.java | 5 +++ kicc-ui/src/api/platform/core/entity/user.ts | 2 +- .../api/platform/system/controller/user.ts | 7 ++++- kicc-ui/src/router/guard/index.ts | 31 +++++++++++++++++++ 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java index 86be2127..f09c9cb5 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java @@ -224,4 +224,9 @@ public class UserController { return R.ok(); } + @GetMapping("/synchronousAuthenticationUser") + public R synchronousAuthenticationUser() { + return R.ok(SecurityUtils.getUser()); + } + } diff --git a/kicc-ui/src/api/platform/core/entity/user.ts b/kicc-ui/src/api/platform/core/entity/user.ts index 335e6329..144d8927 100644 --- a/kicc-ui/src/api/platform/core/entity/user.ts +++ b/kicc-ui/src/api/platform/core/entity/user.ts @@ -35,7 +35,7 @@ export interface User extends CommonEntity { id: string; // 用户名 userName: string; - // 真实名字 + // 昵称 nickName: string; // 头像 avatar: string; diff --git a/kicc-ui/src/api/platform/system/controller/user.ts b/kicc-ui/src/api/platform/system/controller/user.ts index 46c35cd1..d4aa8e4d 100644 --- a/kicc-ui/src/api/platform/system/controller/user.ts +++ b/kicc-ui/src/api/platform/system/controller/user.ts @@ -7,6 +7,7 @@ import type { UserParams, UserResult } from '/@/api/platform/system/entity/user' import type { User } from '/@/api/platform/core/entity/user'; import type { ResultVo } from '/@/api/common/base/entity'; import { defHttp } from '/@/utils/http/axios'; +import { KiccUser } from '/@/api/common/base/entity'; enum Api { list = '/system_proxy/system/user/list', @@ -18,7 +19,8 @@ enum Api { resetPwd='/system_proxy/system/user/resetPwd', changeStatus='/system_proxy/system/user/changeStatus', changeTenant='/system_proxy/system/user/changeTenant', - resetTenant='/system_proxy/system/user/resetTenant' + resetTenant='/system_proxy/system/user/resetTenant', + synchronousAuthenticationUser = '/system_proxy/system/user/synchronousAuthenticationUser' } /** 查询用户列表 */ @@ -50,3 +52,6 @@ export const changeTenant = (tenantIds: string[]) => defHttp.get({ url: `${Api.c /** 还原用户多租户 */ export const resetTenant = () => defHttp.get({ url: Api.resetTenant }); + +/** 同步身份验证用户 */ +export const synchronousAuthenticationUser = () => defHttp.get({ url: Api.synchronousAuthenticationUser }); diff --git a/kicc-ui/src/router/guard/index.ts b/kicc-ui/src/router/guard/index.ts index bbb01ebe..38445763 100644 --- a/kicc-ui/src/router/guard/index.ts +++ b/kicc-ui/src/router/guard/index.ts @@ -18,6 +18,9 @@ import { createPermissionGuard } from './permissionGuard'; import { createStateGuard } from './stateGuard'; import nProgress from 'nprogress'; import projectSetting from '/@/settings/projectSetting'; +import { User } from '/@/api/platform/core/entity/user'; +import { synchronousAuthenticationUser } from '/@/api/platform/system/controller/user'; +import { isEmpty } from '/@/utils/is'; /** 不要改变创建的顺序 */ export function setupRouterGuard(router: Router) { @@ -26,6 +29,7 @@ export function setupRouterGuard(router: Router) { createHttpGuard(router); createScrollGuard(router); createMessageGuard(router); + createSynchronousAuthenticationUserGuard(router); createProgressGuard(router); createPermissionGuard(router); createStateGuard(router); @@ -112,6 +116,33 @@ export function createMessageGuard(router: Router) { }); } +/** 处理刷新实时同步身份验证用户 */ +export function createSynchronousAuthenticationUserGuard(router: Router) { + const userStore = useUserStoreWithOut(); + router.beforeEach(async (to) => { + const token = userStore.getAccessToken; + const userInfo = userStore.getUserInfo; + if (token && !isEmpty(userInfo)) { + const kiccUser = await synchronousAuthenticationUser(); + // 同步当前身份验证用户到用户信息中 + Object.assign(userInfo, { + id: kiccUser.id, + phone: kiccUser.phone, + userName: kiccUser.username, + tenantId: kiccUser.tenantId, + tenantIds: String(kiccUser.tenantId).split(','), + enabled: kiccUser.enabled, + accountNonLocked: kiccUser.accountNonLocked, + accountNonExpired: kiccUser.accountNonExpired, + credentialsNonExpired: kiccUser.credentialsNonExpired + } as User); + userStore.setUserInfo(userInfo); + } + return true; + }); +} + + /** 处理发送请求时显示请求进度条 */ export function createProgressGuard(router: Router) { const { getOpenNProgress } = useTransitionSetting();