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 #4] : 시큐리티 세팅 및 소셜 로그인 API 구현 #13

Merged
merged 96 commits into from
Aug 4, 2024

Conversation

dudxo
Copy link
Collaborator

@dudxo dudxo commented Aug 1, 2024

관련 이슈

📑 작업 상세 내용

  • 시큐리티 세팅
    • SecurityConfig는 지속적으로 수정될 예정입니다.
  • 소셜 로그인 API 구현
    • 로그인 성공 시 신규/기존 회원 구분을 통해 서로 다른 url로 이동하도록 했습니다.
      • 신규/기존 회원 구분을 위한 Auth Entity 추가했습니다.
      • ERD도 반영했습니다.
    • 회원가입 requestDto의 Validation은 Validation 라이브러리 미추가로 인해 진행하지 않았습니다.(Gradle 충돌 방지)
    • Redis 미연동으로 Refresh 관리 부분 및 토큰 재발급 부분이 아직 미구현 상태입니다.
    • security Oauth2 사용과 JWT 키 생성을 위해 application.yml 수정했습니다.
      • 노션 application.yml에도 수정했습니다.
    • API 테스트를 위한 인증 객체 SetUp 메서드 작성

💫 작업 요약

  • SecurityConfig 작성
  • 카카오 로그인 구현
  • JWT 구현(80%)
  • 회원가입 로직 구현(공무원 이메일 인증 X)
  • API 테스트를 위한 인증 객체 SetUp 메서드 작성

🔍 중점적으로 리뷰 할 부분

  • AccessToken과 RefreshToken의 만료 시간에 대해 확인 부탁드립니다.
  • CustomOauth2SuccessHandler.class에서 request.setHeader()를 통해 인증 토큰을 담은 뒤 리다이랙션을 시키고 있는데, 이를 프론트엔드 측에서 확인할 수 있는지 잘 모르겠습니다.
  • CustomOauth2SuccessHandler.class isAuthStatusOld()를 굳이 extractMethod 한건지 확인 부탁드립니다.
  • CustomOauth2UserService.class 리팩토링 진행하며 SRP를 지켜보았는데 괜찮은지 확인 부탁드립니다.

dudxo added 30 commits July 25, 2024 17:28
- Provider로부터 획득한 유저 정보 처리 Service 구현
- 인증 객체 Custom Dto 추가
- AuthDto.class, CustomOauth2User.class
- 네이버 소셜로그인 도입을 고려한 Oauth2Response interface 구현
- 카카오 소셜로그인을 위한 Oauth2Response 구현체 KakaoResponse 구현
- socialEmail로 회원을 찾는 쿼리 메서드 구현
- Custom Authentication 객체 구현
- 신규 유저 또는 기존 유저 구분 후 저장 또는 업데이트 로직 메서드 추출
- 단일 책임 원칙(SRP)를 위한 책임 분배(createSocialName(), createMemberFromOauth2Response())
- MemberRepository.findBySocialEmail() return Type 변경(Member -> Optional<Member>)
- Member로 Auth 찾는 쿼리 메서드 추가
- Auth 저장 또는 업데이트 메서드 구현
- 기존 회원 구분 메서드 구현
- 회원 구분하여 신규 회원일시 추가 정보 기입 페이지로 리다이렉트 구현
- saveOrUpdate(Oauth2Response oauth2Response) : CustomeOauth2userService.class -> MemberService.class
- kakao login api 구현
Copy link
Member

@hyun2371 hyun2371 left a comment

Choose a reason for hiding this comment

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

수정하느라 고생 많으셨습니다!!

@dudxo
Copy link
Collaborator Author

dudxo commented Aug 2, 2024

@hyun2371 수정사항 현재 다 수정했습니다!

낮에 물어보신 @AuthenticationPrincipal 를 통해 인증객체를 꺼낼 때 Member로 바로 꺼낼 수 있게 해주시면 안되냐고 하셨는데,
인증 객체 생성을 CustomOauth2User -> Member로 변경함에 따라 가능하도록 변경헀습니다!
JWT 인증을 통해 제대로 확인 해야되는데 현재 JWT부분이 100% 미완성이라서 추후 확인이 필요해보입니다!

@hyun2371
Copy link
Member

hyun2371 commented Aug 2, 2024

@hyun2371 수정사항 현재 다 수정했습니다!

낮에 물어보신 @AuthenticationPrincipal 를 통해 인증객체를 꺼낼 때 Member로 바로 꺼낼 수 있게 해주시면 안되냐고 하셨는데,
인증 객체 생성을 CustomOauth2User -> Member로 변경함에 따라 가능하도록 변경헀습니다!
JWT 인증을 통해 제대로 확인 해야되는데 현재 JWT부분이 100% 미완성이라서 추후 확인이 필요해보입니다!

오 감사합니다🙂 늦은 시간까지 고생많으셨어요!!👍

@dudxo dudxo requested a review from hyun2371 August 3, 2024 16:36
@hyun2371 hyun2371 changed the title [feat] : 시큐리티 세팅 및 소셜 로그인 API 구현 [feat #4] : 시큐리티 세팅 및 소셜 로그인 API 구현 Aug 4, 2024
dudxo added 2 commits August 4, 2024 12:54
- Auth - Member 로딩 전략 변경(Eager -> Lazy)
- 가독성을 위한 static import 제거
@dudxo dudxo merged commit 5b1615f into dev Aug 4, 2024
3 checks passed
@dudxo dudxo deleted the feat/#4/social-login branch August 5, 2024 11:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⚙️ chore 환경 세팅 ✨ feat 기능 추가
Projects
None yet
Development

Successfully merging this pull request may close these issues.

✨ 시큐리티 세팅 및 소셜 로그인 구현
2 participants