-
Notifications
You must be signed in to change notification settings - Fork 3
Refactor: user 회원가입 시 토큰 자동 발급 #196
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
Conversation
둘러보기빌드 설정을 Java 21로 업그레이드하고, 회원가입 응답에 액세스 토큰과 새로고침 토큰을 추가했습니다. AuthService의 회원가입 프로세스를 수정하여 새 사용자를 반환하고 토큰을 발급하도록 변경했으며, 사용하지 않는 임포트를 정리했습니다. 변경 사항
시퀀스 다이어그램sequenceDiagram
participant Client
participant AuthService
participant UserService
participant TokenService
participant Database
Client->>AuthService: signup(SignupRequest)
AuthService->>AuthService: userRegisterationProcess()
AuthService->>UserService: createNewUser() 또는 updateExistingUser()
UserService->>Database: 사용자 저장
Database-->>UserService: User 반환
UserService-->>AuthService: User 반환
AuthService->>TokenService: 액세스/새로고침 토큰 발급
TokenService-->>AuthService: accessToken, refreshToken
AuthService->>AuthService: SignupResponse.from() 생성
AuthService-->>Client: SignupResponse (message, accessToken, refreshToken)
예상 코드 리뷰 노력🎯 2 (단순) | ⏱️ ~10분 변경 사항은 주로 메서드 시그니처 업데이트와 반환 타입 변경으로 이루어져 있으며, 각 파일의 수정 범위가 명확하고 제한적입니다. 임포트 정리는 반복적이고 기계적인 작업입니다. 관련 가능성 있는 PR
제안 레이블
제안 검토자
시
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
build.gradle(1 hunks)src/main/java/org/ezcode/codetest/application/usermanagement/auth/dto/response/SignupResponse.java(1 hunks)src/main/java/org/ezcode/codetest/application/usermanagement/auth/service/AuthService.java(2 hunks)src/main/java/org/ezcode/codetest/application/usermanagement/user/service/UserService.java(0 hunks)src/main/java/org/ezcode/codetest/domain/user/model/entity/User.java(1 hunks)
💤 Files with no reviewable changes (1)
- src/main/java/org/ezcode/codetest/application/usermanagement/user/service/UserService.java
🔇 Additional comments (5)
src/main/java/org/ezcode/codetest/domain/user/model/entity/User.java (1)
98-98: 중요한 보안 개선사항입니다.이메일 회원가입 시 기본 역할을
ADMIN에서USER로 변경한 것은 올바른 수정입니다. 이전 코드는 모든 신규 사용자에게 관리자 권한을 부여하는 심각한 보안 취약점이었습니다. 이제 소셜 로그인(socialUser,githubUser)과 동일하게USER역할을 할당하여 일관성도 확보되었습니다.src/main/java/org/ezcode/codetest/application/usermanagement/auth/dto/response/SignupResponse.java (1)
8-16: 회원가입 시 토큰 자동 발급 기능이 올바르게 구현되었습니다.
SignupResponse에accessToken과refreshToken필드가 추가되었고, Swagger 문서화도 적절히 되어 있습니다. 팩토리 메서드 시그니처도 새로운 필드를 받도록 정확하게 업데이트되었습니다. 이는 회원가입 후 자동 로그인 기능을 지원하는 좋은 UX 개선입니다.src/main/java/org/ezcode/codetest/application/usermanagement/auth/service/AuthService.java (3)
58-67: 회원가입 시 토큰 자동 발급 로직이 잘 구현되었습니다.사용자 생성 후 액세스 토큰과 리프레시 토큰을 발급하는 흐름이 올바르게 구현되었습니다. 리팩토링된 코드가 깔끔하고 읽기 쉽습니다.
다만, Redis 저장 실패 시의 처리를 고려해주세요.
createRefreshToken메서드(lines 146-154)에서 Redis 저장이 실패하면 사용자는 이미 DB에 저장된 상태이지만 리프레시 토큰이 없어 자동 로그인이 실패합니다. 로그인 시(line 180)에는 Redis 실패를 처리하고 있으니, 회원가입 시에도 유사한 처리가 필요할 수 있습니다.Redis 장애 상황에서의 동작을 확인하려면 다음을 검토해주세요:
- Redis 연결 실패 시 사용자 경험 (액세스 토큰만으로도 로그인 가능한지)
- 에러 메시지가 적절히 전달되는지
78-86: 사용자 객체를 반환하도록 리팩토링된 구조가 깔끔합니다.
userRegisterationProcess메서드가User객체를 반환하도록 변경되어 토큰 생성에 필요한 사용자 정보를 제공할 수 있게 되었습니다. 신규 사용자와 기존 사용자(소셜 로그인 이력) 두 경우 모두 올바르게 처리됩니다.
89-115: LGTM!
createNewUser와updateExistingUser메서드의 반환 타입 변경이 정확하게 구현되었습니다. 기존 로직은 그대로 유지하면서 생성/수정된 사용자 객체를 반환하도록 깔끔하게 리팩토링되었습니다.
작업 내용
유저 회원가입 시 토큰 자동 발급
회원가입할 때 자동으로 UserRole을 Admin으로 지정하던 것에서 User 지정으로 변경
참고 사항
코드 리뷰 전 확인 체크리스트
type :)Summary by CodeRabbit
릴리스 노트
New Features
System Improvements
Chores