Repository navigation
Conversation
- 로그인 입력 placeholder '이메일' → '이메일 또는 닉네임' - 검증 메시지 '이메일을 입력해주세요' → '이메일 또는 닉네임을 입력해주세요' - 미사용 사본 파일 제거: Login 폴더의 ' 2' 중복본 5개(LoginForm/useLoginForm/LoginIcons/SocialLogin/GlobalLoginModal) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
macOS 복사본(' 2') 중 import되지 않는 비로그인 코드 사본 제거:
- Admin/ConfirmModal 2, Admin/Toast 2
- Bookcase/MeetingChatModal 2, Bookcase/MeetingTeamMemberPopover 2
- Comment/comment_section_bookcase 2
- lib/api/admin/clubs 2, types/groups/meetingChats 2, types/groups/meetingTopics 2
에셋 사본 및 page.backup.tsx는 별도 판단 예정으로 제외.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
회원가입 이메일 인증 카운터 시작값 300초 → 600초로 변경 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
refactor: 미사용 사본 파일 정리 (비로그인 코드 8종)
refactor(login): 이메일/닉네임 로그인 문구 정정 및 미사용 사본 파일 제거
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (16)
💤 Files with no reviewable changes (13)
📝 WalkthroughWalkthroughDeletes thirteen duplicate files (named with " 2" suffix) spanning Admin, Bookcase, Comment, Login, and API/type modules. In the canonical files, the login identifier placeholder and validation error message are updated from email-only to email-or-nickname, and the email verification countdown is doubled from 300 to 600 seconds. ChangesDuplicate file removal and login identifier updates
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 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.
Code Review
This pull request increases the email verification timeout to 10 minutes and updates the login flow to support logging in with either an email or a nickname. It also performs a major cleanup by deleting various unused components, hooks, and types. Feedback on these changes highlights a critical bug in the login hook where the login identifier (which may be a nickname) is incorrectly assigned to the user's email field, potentially overwriting valid profile data.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| // 1. Validation (Inline Error) | ||
| const newErrors: Partial<LoginForm> = {}; | ||
| if (!form.identifier) newErrors.identifier = "이메일을 입력해주세요."; | ||
| if (!form.identifier) newErrors.identifier = "이메일 또는 닉네임을 입력해주세요."; |
There was a problem hiding this comment.
로그인 식별자로 이메일뿐만 아니라 닉네임도 입력할 수 있도록 변경되면서, 기존 코드에서 form.identifier를 그대로 email 필드에 대입하는 로직이 버그를 유발할 수 있습니다.
현재 useLoginForm 내의 로그인 처리 로직을 보면 다음과 같은 문제가 있습니다:
-
임시 사용자 객체 생성 시 (Line 54-56):
let loggedInUser: User = { email: form.identifier, };
사용자가 닉네임으로 로그인한 경우,
user.email필드에 실제 이메일 주소가 아닌 닉네임이 저장됩니다. -
프로필 조회 성공 시 (Line 65-68):
loggedInUser = { ...profileResponse.result, email: form.identifier };
getProfile()을 통해 백엔드로부터 올바른 프로필 정보(profileResponse.result)를 받아왔음에도 불구하고,email필드를 다시form.identifier(닉네임일 수 있음)로 덮어쓰고 있습니다.
해결 방안
getProfile()성공 시에는email을form.identifier로 덮어쓰지 않고, 백엔드에서 반환한profileResponse.result.email을 그대로 사용하도록 수정해야 합니다.getProfile()실패 시의 폴백(loggedInUser)에서도form.identifier가 이메일 형식인지 검증한 후 대입하거나, 프로필 조회 실패 시에는 이메일 필드를 비워두는 것이 안전합니다.
Summary by CodeRabbit
New Features
Bug Fixes
Chores