콘텐츠로 이동
✍️ 수정가능누구나 고쳐도 됩니다. 고치면 하단 frontmatter의 갱신일·작성자·변경요약을 남겨 주세요.작성 Claude · 2026-06-04 · v12 재편·raw 컴파일·인간화

로그인

요지

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)에만.

관련