diff --git a/epmet-auth/src/main/java/com/epmet/controller/LoginController.java b/epmet-auth/src/main/java/com/epmet/controller/LoginController.java index d7b2bc6dc8..99b094eb1a 100644 --- a/epmet-auth/src/main/java/com/epmet/controller/LoginController.java +++ b/epmet-auth/src/main/java/com/epmet/controller/LoginController.java @@ -3,8 +3,10 @@ package com.epmet.controller; import com.epmet.common.token.dto.form.LoginByPassWordFormDTO; import com.epmet.common.token.dto.form.LoginByWxCodeFormDTO; import com.epmet.common.token.dto.result.UserTokenResultDTO; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.exception.ErrorCode; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -92,9 +94,9 @@ public class LoginController { * @Date 2020/3/18 22:43 **/ @PostMapping(value = "logout") - public Result logout(HttpServletRequest request) { - String token = request.getParameter(Constant.TOKEN_HEADER); - return loginService.logoutByToken(token); + public Result logout(@LoginUser TokenDto tokenDto, HttpServletRequest request) { + //String token = request.getParameter(Constant.TOKEN_HEADER); + return loginService.logoutByToken(tokenDto); } } diff --git a/epmet-auth/src/main/java/com/epmet/service/LoginService.java b/epmet-auth/src/main/java/com/epmet/service/LoginService.java index 444b2c5bbe..dd37bfc58f 100644 --- a/epmet-auth/src/main/java/com/epmet/service/LoginService.java +++ b/epmet-auth/src/main/java/com/epmet/service/LoginService.java @@ -3,6 +3,7 @@ package com.epmet.service; import com.epmet.common.token.dto.form.LoginByPassWordFormDTO; import com.epmet.common.token.dto.form.LoginByWxCodeFormDTO; import com.epmet.common.token.dto.result.UserTokenResultDTO; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; /** @@ -30,11 +31,11 @@ public interface LoginService { Result loginByPassword(LoginByPassWordFormDTO formDTO); /** - * @param token + * @param tokenDto * @return com.epmet.commons.tools.utils.Result * @Author yinzuomei * @Description 退出登录 * @Date 2020/3/18 22:44 **/ - Result logoutByToken(String token); + Result logoutByToken(TokenDto tokenDto); } diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java index a6207597ed..bfe1d83432 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java @@ -337,10 +337,16 @@ public class LoginServiceImpl implements LoginService { @Override - public Result logoutByToken(String token) { + public Result logoutByToken(TokenDto tokenDto) { //记录登出日志 //删除redis + if(null == tokenDto){ + return new Result().error("当前用户信息获取失败!"); + } + + cpUserDetailRedis.logout(tokenDto.getApp() , tokenDto.getClient() , tokenDto.getUserId()); + //web端清空菜单栏和权限,小程序目前又 - return null; + return new Result().ok("退出登录!"); } } diff --git a/epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java b/epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java index 7e02a517ee..496be5d079 100644 --- a/epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java +++ b/epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java @@ -69,7 +69,7 @@ public class CpAuthGatewayFilterFactory extends AbstractGatewayFilterFactory