Skip to content

[BE] edit CustomOAuth2UserService, UserOauthAccountRepository,TokenEncryptor#173

Merged
Kosw6 merged 1 commit intomainfrom
fix/issue-172-oauth-login
Dec 12, 2025
Merged

[BE] edit CustomOAuth2UserService, UserOauthAccountRepository,TokenEncryptor#173
Kosw6 merged 1 commit intomainfrom
fix/issue-172-oauth-login

Conversation

@Kosw6
Copy link
Collaborator

@Kosw6 Kosw6 commented Dec 12, 2025

CustomOAuth2UserService

  • email로 회원가입 할 경우 같은 계정으로 처음 oauth2 인증을 하게 될 경우 기존 로직의 경우 해당 이메일로 회원가입을 하려함 -> 중복 이메일 시도 에러 발생
  • 해결방법 : UserOauthAccount를 조회하고 조회 내역이 없을 경우 유저 테이블 확인, 해당 이메일로 유저 계정이 없을 경우 회원 등록 시도로 변경
    UserOauthAccountRepository
  • existsByProviderAndUser 추가
    TokenEncryptor
  • 기존 기본키 15자 -> 16자 변경, 해당 값은 테스트 용으로 개발,배포 서버는 따로 값 주입 예정

Summary by CodeRabbit

  • 개선사항
    • OAuth 소셜 로그인 인증 흐름이 더욱 안정적으로 개선되었습니다.
    • 기존 사용자 계정과 OAuth 계정을 연동하는 기능이 강화되었습니다.
    • 사용자 인증 데이터 처리의 안전성과 신뢰성이 향상되었습니다.

✏️ Tip: You can customize this high-level summary in your review settings.

@Kosw6 Kosw6 requested a review from discipline24 as a code owner December 12, 2025 15:42
@Kosw6 Kosw6 merged commit 39396eb into main Dec 12, 2025
1 check was pending
@coderabbitai
Copy link

coderabbitai bot commented Dec 12, 2025

Caution

Review failed

The pull request is closed.

개요

세 개의 OAuth 인증 관련 파일이 수정되었습니다. UserOauthAccountRepository에 새로운 조회 메서드가 추가되었고, CustomOAuth2UserService의 사용자 조회 및 생성 로직이 다단계 흐름으로 리팩토링되었으며, TokenEncryptor의 기본 암호화 키가 변경되었습니다.

변경 사항

응집도 / 파일 변경 요약
OAuth 저장소 확장
backend/src/main/java/org/sejongisc/backend/auth/dao/UserOauthAccountRepository.java
User 엔티티 임포트 추가 및 existsByProviderAndUser(AuthProvider, User) 저장소 메서드 신규 추가
OAuth 사용자 서비스 리팩토링
backend/src/main/java/org/sejongisc/backend/common/auth/config/CustomOAuth2UserService.java
OAuth 사용자 조회 로직을 다단계 흐름으로 변경: (1) provider+providerUid로 기존 사용자 검색 (2) 이메일로 로컬 사용자 검색 (3) 기존 사용자 발견 시 OAuth 링크 추가 (4) 신규 사용자일 경우 생성 및 OAuth 계정 연결. 선택적 null-safe 처리 도입, 인증 속성을 해결된 로컬 User에서 채우도록 변경
토큰 암호화 키 변경
backend/src/main/java/org/sejongisc/backend/common/auth/jwt/TokenEncryptor.java
기본 암호화 키를 "mySecretKey1234"에서 "mySecretKey12345"로 변경 (16바이트 길이 요구)

예상 코드 리뷰 난이도

🎯 3 (보통) | ⏱️ ~20분

주의 깊게 살펴봐야 할 부분:

  • CustomOAuth2UserService.java: 다단계 사용자 조회 및 링크 로직의 정확성 검증 필요 (특히 이메일 기반 검색 시 중복/충돌 처리)
  • TokenEncryptor.java: 기본 키 변경으로 인한 하위 호환성 영향 및 환경 변수 미설정 시 구동 실패 가능성 확인
  • UserOauthAccountRepository.java: 새로운 쿼리 메서드의 성능 및 데이터베이스 인덱스 상태 검토

관련 가능성 있는 PR

추천 검토자

  • discipline24

축하 시

🐰 OAuth 인증 정복이 완성되었네!
다단계 조회로 사용자 링크를 매끄럽게,
암호화 키는 더욱 견고하게,
비약적인 진전, 기쁜 마음! 🎉

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/issue-172-oauth-login

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 491d1cd and 06972f4.

📒 Files selected for processing (3)
  • backend/src/main/java/org/sejongisc/backend/auth/dao/UserOauthAccountRepository.java (1 hunks)
  • backend/src/main/java/org/sejongisc/backend/common/auth/config/CustomOAuth2UserService.java (3 hunks)
  • backend/src/main/java/org/sejongisc/backend/common/auth/jwt/TokenEncryptor.java (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai bot mentioned this pull request Dec 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant