데브허브 | DEVHUB | Build a Custom Forgot Password Page with Clerk & Next.jsBuild a Custom Forgot Password Page with Clerk & Next.js
- Next.js와 Clerk API를 활용하여 사용자 정의 비밀번호 찾기 페이지를 구축하는 방법을 상세히 설명합니다. 🛠️
- Clerk의 공식 문서(Account Updates - Forgot Password)를 참조하여 기능을 구현하며, 기존 커스텀 로그인 페이지와의 연동을 전제로 합니다. 📚
- 비밀번호 재설정은 '이메일/전화번호 입력 → OTP 코드 전송 → 코드 및 새 비밀번호 입력 → Clerk 검증 및 자동 로그인'의 4단계 흐름으로 진행됩니다. 🔢
- Clerk 템플릿 코드를 기반으로 불필요한 React 임포트, 2단계 인증,
useClerk 훅 등을 제거하여 코드를 간결하게 정리합니다. ✂️
- 이메일, 비밀번호, 코드, 성공 여부, 에러, 로딩 등 핵심 상태를 관리하고,
toast.success를 통해 사용자에게 "재설정 코드 전송 완료"와 같은 즉각적인 피드백을 제공합니다. 🔔
- 비밀번호 재설정 성공 시
setActive 함수로 새 세션 ID를 생성하고 에러를 초기화하며, router.push를 사용하여 사용자를 홈페이지로 리다이렉트합니다. ➡️
shadcn/ui의 Card, Label, Input, Button 컴포넌트를 활용하여 UI를 개선하고, 로딩 상태에 따라 버튼 텍스트를 변경하는 등 사용자 경험을 향상시킵니다. ✨
- API 호출 후
finally 블록에서 isLoading 상태를 false로 재설정하여 UI가 멈추는 문제를 해결하고, 에러 메시지에 시각적 스타일을 적용하여 가독성을 높입니다. 💡