로그인¶
요지¶
MS1(MVP-A). 강사·학생·학부모 3역할이 이메일+비밀번호로 인증하고 JWT(Access+Refresh) 기반으로 로그인·로그아웃·자동 로그인·세션 유지. 5회 연속 실패 시 계정 잠금. 출시 완료된 핵심 인증 기능.
해결하는 문제¶
디에듀의 3역할이 본인 역할에 맞는 서비스에 안전하게 접근해야 한다. 토큰 기반 인증으로 세션을 유지하고, 무차별 대입(brute-force)을 계정 잠금으로 방어한다.
핵심 동작¶
- 인증: Access+Refresh 토큰. Refresh는
HttpOnly+Secure+SameSite쿠키로만 저장(JS 접근 차단). Access 만료 시/api/auth/refresh로 무중단 재발급. - 자동 로그인: "로그인 상태 유지" ON → Refresh 영속 쿠키, OFF → 세션(메모리/Session Storage)에만 유지.
- 계정 잠금: 비밀번호 5회 연속 실패 →
status=LOCKED. 재설정 성공 시ACTIVE+ 실패 카운트 0 초기화. - 상태별 분기:
INACTIVE(이메일 미인증, 403)·LOCKED(잠김, 423/403)·WITHDRAWN(탈퇴, 403)은 각각 다른 메시지로 차단. - 편의: 비밀번호 보기/숨기기, 인증 사용자
/login진입 시/dashboard리다이렉트, 회원가입·계정복구 진입 링크.
세부 정책·검증·API·토큰 흐름은 prd·design·frd. 토큰 수명 실값은 source(raw)에만.
관련¶
- PRD: prd · 디자인: design · FRD: frd · 상태: status
- 도메인(SSOT): member (Member·Status·Role·접근 권한)
- 인접 기능: 소셜 가입·로그인 소셜 로그인 (OAuth2.0) · 계정 분실 복구 계정 복구 (Account Recovery)