2 Commits

Author SHA1 Message Date
chy
f9d4b08495 Merge remote-tracking branch 'origin/master' 2026-03-11 00:01:49 +08:00
chy
32627270d1 添加单点登录接口和退出接口 2026-03-11 00:01:32 +08:00
5 changed files with 35 additions and 6 deletions

View File

@@ -2,8 +2,8 @@ spring:
application: application:
name: lideeyunji-server name: lideeyunji-server
profiles: profiles:
active: local # 读取配置 # active: local # 读取配置
# active: prod # 读取配置 active: prod # 读取配置
main: main:
allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。 allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。

View File

@@ -85,6 +85,15 @@ public class AuthController {
return success(true); return success(true);
} }
@PostMapping("/logout-client")
@PermitAll
@Operation(tags = "授权管理",summary = "登出系统")
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志
public CommonResult<Boolean> logoutClient(@RequestParam("refreshToken") String refreshToken) {
logoutService(refreshToken);
return success(true);
}
@PostMapping("/switch-login") @PostMapping("/switch-login")
@Operation(tags = "授权管理",summary = "切换部门登录") @Operation(tags = "授权管理",summary = "切换部门登录")
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志 @OperateLog(enable = false) // 避免 Post 请求被记录操作日志
@@ -164,7 +173,9 @@ public class AuthController {
@Parameter(name = "refreshToken", description = "根据token获取用户信息", required = true) @Parameter(name = "refreshToken", description = "根据token获取用户信息", required = true)
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志 @OperateLog(enable = false) // 避免 Post 请求被记录操作日志
public CommonResult<AdminUserDO> getUerInfo(@RequestParam("refreshToken") String refreshToken) { public CommonResult<AdminUserDO> getUerInfo(@RequestParam("refreshToken") String refreshToken) {
return success(authService.getTokenTouserInfo(refreshToken));
CommonResult<AdminUserDO> result = CommonResult.success(authService.getTokenTouserInfo(refreshToken));
return result;
} }
@GetMapping("/get-permission-info") @GetMapping("/get-permission-info")
@@ -291,7 +302,23 @@ public class AuthController {
authService.logout(token, LoginLogTypeEnum.LOGOUT_SELF.getType()); authService.logout(token, LoginLogTypeEnum.LOGOUT_SELF.getType());
} }
//清空个人信息 //清空个人信息
String userRedisKey="JEE_LOW_CODE:USER:"+loginUserId+":*"; String userRedisKey="LIDEE_LOW_CODE:USER:"+loginUserId+":*";
Set<String> keys = stringRedisTemplate.keys(userRedisKey);
if(keys!=null && keys.size()>0){
keys.forEach(key->{
stringRedisTemplate.delete(key);
});
}
}
private void logoutService(String token){
AdminUserDO user = authService.getTokenTouserInfo(token);
Long loginUserId = user.getId();
if (StrUtil.isNotBlank(token)) {
authService.logout(token, LoginLogTypeEnum.LOGOUT_SELF.getType());
}
//清空个人信息
String userRedisKey="LIDEE_LOW_CODE:USER:"+loginUserId+":*";
Set<String> keys = stringRedisTemplate.keys(userRedisKey); Set<String> keys = stringRedisTemplate.keys(userRedisKey);
if(keys!=null && keys.size()>0){ if(keys!=null && keys.size()>0){
keys.forEach(key->{ keys.forEach(key->{

View File

@@ -100,7 +100,7 @@ public class LideeYunJiPermissionServiceImpl implements ILideeYunJiPermissionSer
} }
//根据角色id来判断我是否是开发者如果有开发者则说明直接可以访问 //根据角色id来判断我是否是开发者如果有开发者则说明直接可以访问
boolean devUserFlag=false; boolean devUserFlag=false;
String isDevUserRedisKey="JEE_LOW_CODE:USER:"+userId+":DEVUSER"; String isDevUserRedisKey="LIDEE_LOW_CODE:USER:"+userId+":DEVUSER";
if(!stringRedisTemplate.hasKey(isDevUserRedisKey)){//没有数据,则查询获取 TODO 优化 if(!stringRedisTemplate.hasKey(isDevUserRedisKey)){//没有数据,则查询获取 TODO 优化
//所有菜单列表 //所有菜单列表
Set<Long> menuIdList = permissionService.getRoleMenuListByRoleId(roleIds); Set<Long> menuIdList = permissionService.getRoleMenuListByRoleId(roleIds);

View File

@@ -85,6 +85,8 @@ public class OAuth2TokenServiceImpl implements IOAuth2TokenService {
// 获得用户基本信息 // 获得用户基本信息
OAuth2AccessTokenDO accessTokenDO= oauth2AccessTokenMapper.selectByAccessToken(refreshToken); OAuth2AccessTokenDO accessTokenDO= oauth2AccessTokenMapper.selectByAccessToken(refreshToken);
AdminUserDO user = adminUserService.getUser(accessTokenDO.getUserId()); AdminUserDO user = adminUserService.getUser(accessTokenDO.getUserId());
user.setPassword("");
user.setEmail("");
return user; return user;
} }

View File

@@ -9,7 +9,7 @@ package com.lideeyunji.tool.framework.yunji.constant;
public interface lideeRedisConstants { public interface lideeRedisConstants {
//低代码 //低代码
String lideeyunji_PREFIX = "JEE_LOW_CODE:"; String lideeyunji_PREFIX = "LIDEE_LOW_CODE:";
//js增强加锁 //js增强加锁
String ENHANCE_JS_LOCK = "LOCK_JS:%s"; String ENHANCE_JS_LOCK = "LOCK_JS:%s";