diff --git a/src/main/java/com/huangge1199/picture/controller/UserController.java b/src/main/java/com/huangge1199/picture/controller/UserController.java index 5ea9e5d..bedc9f9 100644 --- a/src/main/java/com/huangge1199/picture/controller/UserController.java +++ b/src/main/java/com/huangge1199/picture/controller/UserController.java @@ -60,6 +60,16 @@ public class UserController { return R.ok(userService.getLoginUserVO(user)); } + /** + * 用户注销 + */ + @PostMapping("/logout") + public R userLogout(HttpServletRequest request) { + ThrowUtils.throwIf(request == null, ErrorCode.PARAMS_ERROR); + boolean result = userService.userLogout(request); + return R.ok(result); + } + } diff --git a/src/main/java/com/huangge1199/picture/service/UserService.java b/src/main/java/com/huangge1199/picture/service/UserService.java index a90f24b..eca9dcd 100644 --- a/src/main/java/com/huangge1199/picture/service/UserService.java +++ b/src/main/java/com/huangge1199/picture/service/UserService.java @@ -57,4 +57,13 @@ public interface UserService extends IService { */ User getLoginUser(HttpServletRequest request); + /** + * 用户注销 + * + * @param request 请求 + * @return 是否注销成功 + */ + boolean userLogout(HttpServletRequest request); + + } diff --git a/src/main/java/com/huangge1199/picture/service/impl/UserServiceImpl.java b/src/main/java/com/huangge1199/picture/service/impl/UserServiceImpl.java index ab4c99f..b8dfe51 100644 --- a/src/main/java/com/huangge1199/picture/service/impl/UserServiceImpl.java +++ b/src/main/java/com/huangge1199/picture/service/impl/UserServiceImpl.java @@ -133,6 +133,19 @@ public class UserServiceImpl extends ServiceImpl return currentUser; } + @Override + public boolean userLogout(HttpServletRequest request) { + // 先判断是否已登录 + Object userObj = request.getSession().getAttribute(UserConstant.USER_LOGIN_STATE); + if (userObj == null) { + throw new MyException(ErrorCode.OPERATION_ERROR, "未登录"); + } + // 移除登录态 + request.getSession().removeAttribute(UserConstant.USER_LOGIN_STATE); + return true; + } + + }