refactor: deleteRefreshToken 메서드 람다활용 문법으로 변경
This commit is contained in:
@@ -45,10 +45,10 @@ public class AuthController {
|
||||
|
||||
@PostMapping("/logout")
|
||||
public ResponseEntity<LogoutResponse> logout(@AuthenticationPrincipal UserDetails userRequest) {
|
||||
authenticationService.deleteRefreshToken(userRequest.getUsername());
|
||||
LogoutResponse logoutResponse = authenticationService.deleteRefreshToken(userRequest.getUsername());
|
||||
|
||||
return ResponseEntity.status(HttpStatus.OK)
|
||||
.body(LogoutResponse.from(userRequest.getUsername()));
|
||||
.body(logoutResponse);
|
||||
}
|
||||
|
||||
private HttpHeaders getHttpHeaders() {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.ticketing.server.user.application.response;
|
||||
|
||||
import com.ticketing.server.global.redis.RefreshToken;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
@@ -8,10 +9,20 @@ import lombok.Getter;
|
||||
@AllArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public class LogoutResponse {
|
||||
|
||||
private Long refreshTokenId;
|
||||
private String email;
|
||||
private String refreshToken;
|
||||
|
||||
private LogoutResponse(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
public static LogoutResponse from(String email) {
|
||||
return new LogoutResponse(email);
|
||||
}
|
||||
|
||||
public static LogoutResponse from(RefreshToken refreshToken) {
|
||||
return new LogoutResponse(refreshToken.getId(), refreshToken.getEmail(), refreshToken.getToken());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,9 +9,9 @@ import com.ticketing.server.global.redis.RefreshRedisRepository;
|
||||
import com.ticketing.server.global.redis.RefreshToken;
|
||||
import com.ticketing.server.global.security.jwt.JwtProperties;
|
||||
import com.ticketing.server.global.security.jwt.JwtProvider;
|
||||
import com.ticketing.server.user.application.response.LogoutResponse;
|
||||
import com.ticketing.server.user.application.response.TokenDto;
|
||||
import com.ticketing.server.user.service.interfaces.AuthenticationService;
|
||||
import java.util.Optional;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
|
||||
@@ -82,15 +82,12 @@ public class AuthenticationServiceImpl implements AuthenticationService {
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public boolean deleteRefreshToken(String email) {
|
||||
Optional<RefreshToken> findTokenEntity = refreshRedisRepository.findByEmail(email);
|
||||
|
||||
if (findTokenEntity.isPresent()) {
|
||||
refreshRedisRepository.delete(findTokenEntity.get());
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
public LogoutResponse deleteRefreshToken(String email) {
|
||||
return refreshRedisRepository.findByEmail(email)
|
||||
.map(tokenDto -> {
|
||||
refreshRedisRepository.delete(tokenDto);
|
||||
return LogoutResponse.from(tokenDto);
|
||||
}).orElseGet(() -> LogoutResponse.from(email));
|
||||
}
|
||||
|
||||
private String resolveToken(String bearerToken) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.ticketing.server.user.service.interfaces;
|
||||
|
||||
import com.ticketing.server.user.application.response.LogoutResponse;
|
||||
import com.ticketing.server.user.application.response.TokenDto;
|
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||
|
||||
@@ -9,6 +10,6 @@ public interface AuthenticationService {
|
||||
|
||||
TokenDto reissueTokenDto(String bearerRefreshToken);
|
||||
|
||||
boolean deleteRefreshToken(String email);
|
||||
LogoutResponse deleteRefreshToken(String email);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user