Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[refactor #54] 로그인 후 JWT 발급 리팩토링 #58

Merged
merged 32 commits into from
Aug 20, 2024
Merged
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
3632868
[fix] : 토큰 재발급 보안 위험을 제거하기 위한 바디 응답 -> 헤더 응답 변경
dudxo Aug 18, 2024
a7f7ce7
[fix] : JWT-Cookie 방식으로 변경 및 로그인 후 리다이렉트 주소(프론트 테스트 환경) 변경
dudxo Aug 19, 2024
26a9870
[fix] : JWT 인증 필터 헤더가 아닌 쿠키에서 꺼내오도록 수정
dudxo Aug 19, 2024
b563072
[feat] : Cookie 생성 및 분해 처리 Uitl.Class 추가
dudxo Aug 19, 2024
35b2b34
[fix] : Jwt-Cookie 변경에 따른 로그아웃/토큰 재발급 로직 수정
dudxo Aug 19, 2024
c1694d9
[fix] : 카카오 로그인 flow 변경에 따른 api 삭제
dudxo Aug 19, 2024
492a4e5
[rename] : 인증 로직 파일 구조 변경 (Member -> Auth)
dudxo Aug 19, 2024
cfa87f2
[test] : Auth <-> Member Service 레이어 책임에 따른 로직 이동으로 인한 테스트 코드 위치 수정
dudxo Aug 19, 2024
c7bfb74
[test] : AuthFixture 추가
dudxo Aug 19, 2024
e378520
[fix] : 공무원 이메일 존재 검증 메서드 접근제어자 변경
dudxo Aug 19, 2024
a7a23ce
[test] : 팩토리 메서드가 아닌 Fixture 사용 변경
dudxo Aug 19, 2024
cdd190e
[test] : disable 제거 및 통합테스트 어노테이션 제거
dudxo Aug 19, 2024
b8e1b6f
[test] : ApiTestSupport JWT 생성 시 쿠키 필드로 저장
dudxo Aug 19, 2024
d844e4f
[test] : JWT-Cookie 방식 변경으로 인한 컨트롤러 통합테스트 요청 수정(header -> cookie)
dudxo Aug 19, 2024
94e3457
[sytle] : 코드 포맷팅
dudxo Aug 19, 2024
b3a4275
[fix] : findBy를 통해 찾은 엔티티가 없을 때도 항상 실행되는 orElse() 문제 orElseGet() 변경으로 해결
dudxo Aug 19, 2024
83519ad
[rename] : 변수/메서드 네이밍 변경
dudxo Aug 19, 2024
711b448
[feat] : 토큰 재발급 API 인가 허용
dudxo Aug 19, 2024
ef0973a
[fix] : swagger 쿠키 사용으로 인한 인가 관련 Bean 삭제
dudxo Aug 19, 2024
39e4914
[fix] : swagger 임시 회원가입 API 응답 로직 변경(JWT return String -> return resp…
dudxo Aug 19, 2024
ec42e06
[feat] : 토큰 검증 시 기존 예외처리 외 나머지 예외에 대한 예외처리 추가
dudxo Aug 19, 2024
3bf0cdd
[feat] : 인가 API 수정 및 일부 API 시큐리티 필터 통과하도록 변경
dudxo Aug 19, 2024
ddd9ffe
[test] : 본 로직 수정으로 필요 없어진 stub 제거
dudxo Aug 19, 2024
ecd0cbf
[feat] : 로그아웃 API 기존 쿠키 삭제 로직 추가
dudxo Aug 19, 2024
4e92ece
[feat] : 쿠키 저장된 토큰 삭제 로직 추가
dudxo Aug 19, 2024
871106b
[test] : 로그아웃 시 기존 쿠키가 삭제되는지 검증 로직 추가
dudxo Aug 19, 2024
95ab96d
[style] : 스타일 변경
dudxo Aug 19, 2024
d18a691
[style] : 스타일 변경
dudxo Aug 19, 2024
cde394e
[test] : CI 오류 해결을 위한 disable
dudxo Aug 20, 2024
457a82b
[feat #56] 질문글 수정 API (#57)
hyun2371 Aug 19, 2024
99cc1f4
[test] : CI 오류 해결
dudxo Aug 20, 2024
1c6a463
Merge branch 'dev' into refactor/#54/security
dudxo Aug 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[feat] : 로그아웃 API 기존 쿠키 삭제 로직 추가
dudxo committed Aug 19, 2024
commit ecd0cbfcd350ffaef47c8b66940579e113da37a9
Original file line number Diff line number Diff line change
@@ -66,9 +66,9 @@ public ResponseEntity<SignUpResponse> signUp(
@Operation(summary = "로그아웃 API", description = "로그아웃한다.")
@ApiResponse(useReturnTypeSchema = true)
@PostMapping("/logout")
public ResponseEntity<LogoutResponse> logout(HttpServletRequest request) {
LogoutResponse response = authService.logout(request);
return ResponseEntity.ok(response);
public ResponseEntity<LogoutResponse> logout(HttpServletRequest request, HttpServletResponse response) {
LogoutResponse logoutResponse = authService.logout(request, response);
return ResponseEntity.ok(logoutResponse);
}

@Operation(summary = "토큰 재발급 API", description = "토큰을 재발급한다.")
4 changes: 3 additions & 1 deletion src/main/java/com/dnd/gongmuin/auth/service/AuthService.java
Original file line number Diff line number Diff line change
@@ -116,7 +116,7 @@ public SignUpResponse signUp(AdditionalInfoRequest request, String email) {
return new SignUpResponse(foundMember.getNickname());
}

public LogoutResponse logout(HttpServletRequest request) {
public LogoutResponse logout(HttpServletRequest request, HttpServletResponse response) {
String accessToken = cookieUtil.getCookieValue(request);

if (!tokenProvider.validateToken(accessToken, new Date())) {
@@ -138,6 +138,8 @@ public LogoutResponse logout(HttpServletRequest request) {
throw new NotFoundException(MemberErrorCode.LOGOUT_FAILED);
}

cookieUtil.deleteCookie(response);

return new LogoutResponse(true);
}