From fec7869339431e1719741419eb0050678a2b6a7d Mon Sep 17 00:00:00 2001 From: 5upportPark <5upportpark7@gmail.com> Date: Wed, 25 Sep 2024 21:36:48 +0900 Subject: [PATCH] =?UTF-8?q?=ED=83=88=ED=87=B4=20=EA=B8=B0=EB=8A=A5,=20?= =?UTF-8?q?=EC=9C=A0=EC=A0=80=20state=20enum=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/pjw/retry_view/config/WebConfig.java | 2 +- .../controller/LogoutController.java | 24 +++++++++++++++++++ .../pjw/retry_view/service/UserService.java | 7 ++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/pjw/retry_view/controller/LogoutController.java diff --git a/src/main/java/com/pjw/retry_view/config/WebConfig.java b/src/main/java/com/pjw/retry_view/config/WebConfig.java index 4efad7f..1133499 100644 --- a/src/main/java/com/pjw/retry_view/config/WebConfig.java +++ b/src/main/java/com/pjw/retry_view/config/WebConfig.java @@ -21,7 +21,7 @@ public FilterRegistrationBean jwtVerifyFilterBean(){ FilterRegistrationBean jwtVerifyFilterBean = new FilterRegistrationBean<>(); jwtVerifyFilterBean.setFilter(jwtverifyFilter); jwtVerifyFilterBean.setOrder(1); - jwtVerifyFilterBean.setUrlPatterns(List.of("/users","/users/info")); + jwtVerifyFilterBean.setUrlPatterns(List.of("/users","/users/info","/logout")); return jwtVerifyFilterBean; } diff --git a/src/main/java/com/pjw/retry_view/controller/LogoutController.java b/src/main/java/com/pjw/retry_view/controller/LogoutController.java new file mode 100644 index 0000000..9e6aa81 --- /dev/null +++ b/src/main/java/com/pjw/retry_view/controller/LogoutController.java @@ -0,0 +1,24 @@ +package com.pjw.retry_view.controller; + +import com.pjw.retry_view.service.UserService; +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Controller +@RequestMapping("/logout") +public class LogoutController { + private final UserService userService; + + public LogoutController(UserService userService) { + this.userService = userService; + } + + @PostMapping + public void logout(HttpServletRequest req){ + String loginId = req.getAttribute("loginId").toString(); + userService.logout(loginId); + } +} diff --git a/src/main/java/com/pjw/retry_view/service/UserService.java b/src/main/java/com/pjw/retry_view/service/UserService.java index a3884d3..96d6919 100644 --- a/src/main/java/com/pjw/retry_view/service/UserService.java +++ b/src/main/java/com/pjw/retry_view/service/UserService.java @@ -36,4 +36,11 @@ public UserDTO userLogin(LoginRequest loginRequest){ public UserDTO saveUser(UserDTO userDTO){ return userRepository.save(userDTO.toEntity()).toDTO(); } + + @Transactional + public void logout(String loginId){ + User user = userRepository.findByLoginId(loginId).orElseThrow(UserNotFoundException::new); + user.setRefreshToken(null); + userRepository.save(user); + } }