Skip to content

[Feature] #1 세션 기반 인증 API 구현 - #4

Open
ethan0587 wants to merge 4 commits into
developfrom
feature/session
Open

[Feature] #1 세션 기반 인증 API 구현 #4
ethan0587 wants to merge 4 commits into
developfrom
feature/session

Conversation

@ethan0587

@ethan0587 ethan0587 commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

📌 관련 이슈

Closes #1

🛠 작업 내용

엔드포인트 메서드 인증 설명
/auth/signup/ POST 공개 회원가입 + 가입 직후 자동 로그인
/auth/login/ POST 공개 세션 생성
/auth/logout/ POST 세션 필수 세션 파기
/auth/session/ GET 공개 현재 세션 상태 조회 + csrftoken 발급
  • 응답 성공/실패는 HTTP 상태코드로 판단, 에러는 { code, message } 포맷 통일
  • 로그인 실패 시 아이디/비밀번호 오류 미구분 (계정 열거 방지)
  • session 뷰에 @ensure_csrf_cookie 적용 → 진입 시 csrftoken 쿠키 발급
  • DRF 미인증 기본 403 → 커스텀 예외 핸들러로 401 변환

🔍 테스트 결과 (curl 검증 완료)

케이스 기대 결과
signup 성공 201
login 성공 200 (has_profile 반영)
logout 성공 200 + sessionid 파기
session 미인증 200 is_authenticated:false
필수값 누락 400 INVALID_INPUT
자격증명 불일치 401 INVALID_CREDENTIALS
미인증 접근 401 NOT_AUTHENTICATED
  • sessionidHttpOnly 적용 / csrftoken → 미적용 확인
  • 로그인·로그아웃 시 csrftoken rotate 동작 확인

📸 스크린샷 (UI 변경 시)

✅ 체크리스트

  • 로컬에서 정상 동작 확인
  • 불필요한 주석/print 제거
  • 마이그레이션 파일 포함 여부 확인

⚠️ 미결

  1. 로그인·회원가입 CSRF 강제
    • 명세는 "비로그인 요청도 CSRF 검증 대상"이나, DRF SessionAuthentication
      인증된 세션이 있을 때만 CSRF를 검사한다. → 비로그인 로그인 요청이 CSRF 없이 통과됨.
    • SameSite=Lax 쿠키로 cross-site POST는 이미 차단되나, 명세대로 강제할지
      명세를 완화할지 확정 필요.

📎 참고

  • requirements.txtdjangorestframework 반영됨

@ethan0587 ethan0587 linked an issue Aug 5, 2026 that may be closed by this pull request
13 tasks
@ethan0587
ethan0587 requested a review from hyunnminn August 5, 2026 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat] 세션로그인 구현

1 participant