Skip to content

관리자 로그인 기능 추가#12

Open
soohyunme wants to merge 3 commits into
mainfrom
feature/admin-login
Open

관리자 로그인 기능 추가#12
soohyunme wants to merge 3 commits into
mainfrom
feature/admin-login

Conversation

@soohyunme

Copy link
Copy Markdown
Member

요약

  • .env 기반 단일 admin 계정 로그인을 추가했습니다.
  • 비밀번호는 평문 대신 pbkdf2_sha256 hash로 검증하고, 로그인 성공 시 HttpOnly 세션 쿠키를 발급합니다.
  • 인증 설정이 켜진 환경에서는 /api/v1 관리 API를 세션 쿠키로 보호합니다.
  • frontend에 /login, 인증 상태 provider, route guard, 로그아웃 동선을 추가했습니다.
  • backend/.env.sample과 setup guide에 admin auth 설정 방법을 문서화했습니다.

공개 유지 API

  • /api/v1/status
  • /api/v1/auth/*
  • /api/v1/capture
  • /api/v1/identify
  • /api/v1/feature-flags/decide
  • /api/v1/experiments/*/assign/*

검증

  • cd backend && .venv/bin/pytest — 121 passed
  • cd frontend && npm test -- --run — 49 passed
  • cd frontend && npm run build
  • git diff --check

운영 메모

  • 로컬: AUTH_COOKIE_SECURE=false
  • 운영/스테이징 HTTPS: AUTH_COOKIE_SECURE=true
  • 비밀번호 hash 생성: cd backend && python scripts/hash_admin_password.py

@soohyunme

Copy link
Copy Markdown
Member Author

운영 배포 메모를 보강합니다.

  • k8s 배포에서는 admin auth 값을 평문 env가 아니라 Secret/SealedSecret/ExternalSecret 등으로 주입해야 합니다.
  • 필수 값: ADMIN_USERNAME, ADMIN_PASSWORD_HASH, AUTH_SESSION_SECRET
  • 운영 HTTPS 기준 권장 값: AUTH_COOKIE_SECURE=true, AUTH_COOKIE_SAMESITE=lax
  • 비밀번호 평문은 저장/커밋하지 않고 hash만 사용합니다: cd backend && python scripts/hash_admin_password.py
  • 최신 main merge 이후 공개 유지 API에는 기존 목록 외에 placement decide도 포함됩니다: /api/v1/placements/*/decide, /api/v1/experiments/*/placements/*/decide
  • 최신 로컬 검증: backend 158 passed, frontend 56 passed, frontend build passed. GitHub validate도 success 확인했습니다.

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.

1 participant