From c23f48c5ec15476299edadd91fa18f908d710a4f Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期四, 18 七月 2024 08:58:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java | 31 +++++++++++++++++++++++++------ 1 files changed, 25 insertions(+), 6 deletions(-) diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java index a14e00c..ccdde28 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java @@ -12,6 +12,7 @@ import com.ruoyi.common.core.utils.JwtUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.redis.service.RedisService; +import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.common.security.auth.AuthUtil; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.utils.SecurityUtils; @@ -26,6 +27,7 @@ import java.util.Date; import java.util.HashMap; import java.util.List; +import java.util.Objects; import java.util.concurrent.TimeUnit; import javax.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; @@ -90,18 +92,22 @@ { // 用户登录 LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword()); + SysUser sysUser1 = userInfo.getSysUser(); HashMap<String, Object> map = new HashMap<>(); map.put("token",tokenService.createToken(userInfo)); - List<SysRole> roles = userInfo.getSysUser().getRoles(); - if(CollectionUtils.isEmpty(roles)){ - return R.fail("请关联角色!"); + List<SysRole> roles = sysUser1.getRoles(); + if (Objects.equals("00", sysUser1.getUserType())) { + if (CollectionUtils.isEmpty(roles)) { + return R.fail("请关联角色!"); + } + map.put("roleName", roles.get(0).getRoleName()); } - map.put("roleName",roles.get(0).getRoleName()); map.put("info",userInfo); + map.put("userType", sysUser1.getUserType()); // 修改用户最后登录时间 SysUser sysUser = new SysUser(); - sysUser.setUserId(userInfo.getSysUser().getUserId()); + sysUser.setUserId(sysUser1.getUserId()); sysUser.setLoginDate(new Date()); System.out.println("修改用户登录时间"+sysUser); userClient.updateSysUser(sysUser); @@ -125,6 +131,19 @@ return R.ok(); } + @InnerAuth + @GetMapping("/inner/logout") + @ApiOperation(value = "设置用户token失效") + public R<?> logout(@RequestParam("") String token) { + if (StringUtils.isNotEmpty(token)) { + String username = JwtUtils.getUserName(token); + // 删除用户缓存记录 + AuthUtil.logoutByToken(token); + // 记录用户退出日志 + sysLoginService.logout(username); + } + return R.ok(); + } @PostMapping("refresh") @ApiOperation(value = "管理后台-刷新令牌有效期") public R<?> refresh(HttpServletRequest request) @@ -158,7 +177,7 @@ //校验手机号码 SysUser sysUser = userClient.queryUserByUserName(username).getData(); if (StringUtils.isNull(sysUser)) { - return R.fail("用户不存在"); + return R.fail("账号不存在"); } String code = RandomUtil.randomNumbers(6); try { -- Gitblit v1.7.1