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

[feat] 사용자 로그인 api & 토큰 재발급 api & JWT 인증인가 세팅 #59

Merged
merged 68 commits into from
Jan 9, 2024

Conversation

ParkJuhan94
Copy link
Collaborator

@ParkJuhan94 ParkJuhan94 commented Jan 5, 2024

📄 무엇을 개발했나요?

  • JWT 인증인가 세팅에서는 argument resolver 와 Interceptor 를 사용해서 유지보수하기 편하도록 구현했습니다.
  • Refresh Token 와 Access Token 을 둘 다 활용해서 로그인을 수시로 해야하는 필요를 줄였습니다.

🍸 무엇을 집중적으로 리뷰해야할까요?

  • 인증 인가 로직이 적절한지 리뷰 부탁드립니다.
  • argument resolver 와 Interceptor 에 대한 테스트에 고민이 있었는데 리뷰 부탁드립니다~

# Conflicts:
#	core/build.gradle
#	core/src/main/java/dev/hooon/user/application/UserService.java
#	core/src/main/java/dev/hooon/user/domain/entity/User.java
#	core/src/main/java/dev/hooon/user/domain/repository/UserRepository.java
#	core/src/main/java/dev/hooon/user/exception/UserErrorCode.java
#	core/src/main/java/dev/hooon/user/infrastructure/adaptor/UserRepositoryAdaptor.java
#	core/src/main/java/dev/hooon/user/infrastructure/repository/UserJpaRepository.java
@ParkJuhan94 ParkJuhan94 added the ✏️ Feat 기능 개발 label Jan 5, 2024
@ParkJuhan94 ParkJuhan94 added this to the 3차 스프린트 milestone Jan 5, 2024
@ParkJuhan94 ParkJuhan94 self-assigned this Jan 5, 2024
@ParkJuhan94 ParkJuhan94 closed this Jan 7, 2024
@ParkJuhan94 ParkJuhan94 reopened this Jan 7, 2024
Copy link
Member

@EunChanNam EunChanNam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

리뷰 완료했습니다~ 고생하셨어요 👏
보완할 부분이 꽤 있는거같아요
리뷰한 내용 꼼꼼히 검토 부탁드립니다~
빠르게 수정하고 빠르게 테스트코드까지 짜야될거같네요!! (진짜 촉박)

api/src/main/java/dev/hooon/auth/AuthApiController.java Outdated Show resolved Hide resolved
api/src/main/java/dev/hooon/auth/TokenForReIssue.java Outdated Show resolved Hide resolved
api/src/main/java/dev/hooon/auth/JwtInterceptor.java Outdated Show resolved Hide resolved
@ParkJuhan94 ParkJuhan94 closed this Jan 8, 2024
@ParkJuhan94 ParkJuhan94 reopened this Jan 8, 2024
ParkJuhan94 and others added 8 commits January 9, 2024 11:34
* feat : 예매된 좌석을 show_id, date, round 로 조회하는 쿼리 구현

* feat : 예매된 좌석들의 정보를 조회하는 서비스로직 구현

* feat : 예매된 좌석정보 조회 API 구현

* refactor : 시간관련 변수를 의존성 주입으로 변경하여 테스트 변경(기존 테스트가 랜덤하게 터지는 현상 해결)

* refactor : BookingJpaRepositoryTest 테스트 환경 DataJpaTestSupport 로 통일
@ParkJuhan94 ParkJuhan94 merged commit 79a1773 into dev Jan 9, 2024
2 checks passed
EunChanNam added a commit that referenced this pull request Jan 15, 2024
* [feat]: auth repository 구현

* [feat]: build.gradle 에 jwt 의존성 추가

* [feat]: user repository 구현

* [feat]: Auth 엔티티 구현

* [feat]: user 엔티티 구현

* [feat]: UserJoinRequestDto 와 userinfo 구현

* [feat]: auth 컨트롤러 구현

* [feat]: Auth errorcode, Auth exception 구현

* [feat]: Auth dto 구현

* [feat]: Auth Service 와 테스트 구현

* [feat]: User service 와 errorcode 구현

* [feat]: Token 타입 구현

* [feat]: @JwtAuthorization 어노테이션 & argument resolver 구현

* [feat]: JwtProvider 구현

* [feat]: JwtInterceptor 구현 및 WebConfig 구현

* [refactor]: user 관련된 것 수정

* [refactor]: 인증 필요없는 api 구현 + jwtProvider 구현

* [refactor]: 필요없는 것 삭제 + 사소한 것 추가

* [feat]: authService + authController 구현

* [feat]: 컨트롤러 요청 받기위한 레코드 + 토큰 레코드에 헤더이름 추가

* [feat]: JwtAuthorizationArgumentResolver 구현

* feat : Auditing 설정 추가 (#57)

* [feat]: 공연 예매 API 추가 (#56)

* [feat]: @nOAuth 로 api 인증 필요여부 구현

* [feat]: @NeedAuth 로 api 인증 필요여부 구현

* [feat]: userInfo, TokenType 삭제

* [feat]: api, scheduler 모듈의 test 의 yml 에 jwt 정보 추가

* [feat]: Auth 에러코드 삭제 & AuthResponse 필드 변경

* [feat]: user엔티티 생성자 추가

* [feat]: Argument Resolver를 통한 @nOAuth 구현

* [feat]: TokenForReIssue 네이밍 변경

* [feat]: Api 들에다가 @nOAuth 추가

* [feat]: AuthService 로직 변경 & AuthServiceTest 트러블슈팅

* [feat]: JwtProvider 로직 변경해서 구현

* [feat]: 인터셉터 로직 변경해서 구현

* [refactor]: WaitingBookingApiController 에 argument resolver 리팩토링 & WaitingBookingApiControllerTest 트러블 슈팅해서 리팩토링

* [feat]: core 모듈 test의 yml 에 jwt 정보 추가

* Revert "feat : Auditing 설정 추가 (#57)"

This reverts commit 3262d37.

* Revert "[feat]: 공연 예매 API 추가 (#56)"

This reverts commit b6b0f08.

* Revert "Revert "[feat]: 공연 예매 API 추가 (#56)""

This reverts commit 2158c92.

* Revert "[feat]: 공연 예매 API 추가 (#56)"

This reverts commit b6b0f08.

* [feat]: api 들에게 @nOAuth 추가

* [feat]: WaitingBookingApiControllerTest 되돌림

* [fix]: 테스트유저 생성자 변경

* [refactor]: jwt 헤더 yml -> 코드로 이동

* [refactor]: 토큰재발행 dto 네이밍 변경 & getAuthByRefreshToken 제어자 private 으로 변경

* [refactor]: 시크릿키 생성 관련을 생성자로 ㅂ

* [refactor]: 로그인시에 토큰 생성하고, Auth를 생성하는 로직 변경, 그에 따른 테스트 변경

* [refactor]: JwtProvider 에서 AuthRepository 제거

* [fix]: JwtProvider 에 검증할 예외 추가

* [fix]: 인터셉터 로직 변경 - 예외를 jwtProvider 에서 처리하도록

* [feat]: 테스트를 위한 JwtProvider 에 메서드와 생성자 추가 + JwtProviderTest 구현

* [feat]: ShowSeatsApiController 머지 적용

* [feat] : 예매된 좌석 조회 API 구현 (#63)

* feat : 예매된 좌석을 show_id, date, round 로 조회하는 쿼리 구현

* feat : 예매된 좌석들의 정보를 조회하는 서비스로직 구현

* feat : 예매된 좌석정보 조회 API 구현

* refactor : 시간관련 변수를 의존성 주입으로 변경하여 테스트 변경(기존 테스트가 랜덤하게 터지는 현상 해결)

* refactor : BookingJpaRepositoryTest 테스트 환경 DataJpaTestSupport 로 통일

* [refactor]: JwtInterceptorTest 정리

* [feat]: ShowSeatsApiController 머지하면서 @nOAuth 추가

* [feat]: 아규먼트리졸버 테스트 구현 & 인터셉터 테스트 로직 정리

* [feat]: AuthApiControllerTest 구현

* [feat]: [api 모듈 auth 패키지]의 하위를 패키지 정리

* [feat]: JwtProvider 테스트용 생성자 메서드 삭제에 따른 테스트코드도 함께 변경

* [feat]: AuthJpaRepository 정리

* [feat]: AuthApiControllerTest 정리와 AuthService 의 saveAuth 접근제어자 변경

* [feat]: 인터셉터와 아규먼트리졸버 테스트 각각에서 @ExtendWith 추가와 setUp() 을 필드에 직접 할당으로 변경

---------

Co-authored-by: EunChanNam <75837025+EunChanNam@users.noreply.github.com>
Co-authored-by: 이수진 <71487608+ssssujini99@users.noreply.github.com>
@ParkJuhan94 ParkJuhan94 deleted the feat/#3/login-api-1 branch March 21, 2024 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✏️ Feat 기능 개발 🧚 Refactor 리팩토링 ✅ Test 테스트 코드
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants