이 저장소는 Django 5, DRF, SimpleJWT 기반의 모듈형 인증 시스템을 구현한 예제입니다. authentication/ 폴더만 통째로 다른 Django 프로젝트에 옮겨도 이메일 기반 회원가입(이메일 인증), 비밀번호 관리, JWT 로그인, Google/Kakao OAuth2, 권한(Role) 검증, 웹 데모 UI가 즉시 동작하도록 설계되었습니다.
- 커스텀 User + PendingRegistration: 이메일 인증 전에는 대기 테이블에만 저장되어 “유령 계정”이 남지 않습니다.
- JWT + OAuth2: 기본 로그인뿐 아니라 Google/Kakao OAuth2 연동, refresh 토큰 블랙리스트 처리까지 포함합니다.
- 웹 데모 UI:
web/앱을 통해/register,/login,/mypage등 실제 게시판 형태 UI로 즉시 확인 가능합니다. - 환경 변수 기반 설정:
.env.example을 참고해 SMTP/JWT/OAuth 값을 설정하면 곧바로 사용할 수 있습니다. - 문서/테스트:
authentication/PORTING_GUIDE.md에 이식 절차가 상세히 정리되어 있으며python manage.py test authentication으로 기본 플로우를 검증했습니다.
pip install -r requirements.txt # Django, DRF, SimpleJWT, allauth 등
cp .env.example .env # SMTP/Gmail, JWT, OAuth 값 입력
python manage.py migrate
python manage.py test authentication
python manage.py runserver브라우저에서 http://localhost:8000/register/ 에 접속하여 이메일 인증 → 로그인 → 마이페이지까지 흐름을 확인할 수 있습니다.
- 다른 Django 프로젝트에
authentication/폴더를 복사합니다. INSTALLED_APPS,AUTH_USER_MODEL,REST_FRAMEWORK,SIMPLE_JWT,AUTHENTICATION_BACKENDS,urls.py등을PORTING_GUIDE.md지침대로 수정합니다..env를 작성하고python manage.py migrate authentication후/auth/register → /auth/register/verify → /auth/login플로우를 호출해 동작을 확인합니다.
이 가이드만 따르면 별도의 로그인 시스템이 없던 프로젝트에서도 즉시 사용 가능한 인증 모듈을 확보할 수 있습니다.