Skip to content

[fix] 관리자 로그인 브라우저 활동 로그 제외 - #31

Merged
DevDon-iOS merged 1 commit into
mainfrom
fix/#30-admin-activity-exclusion
Sep 16, 2026
Merged

DevDon-iOS merged 1 commit into
mainfrom
fix/#30-admin-activity-exclusion

Conversation

@DevDon-iOS

@DevDon-iOS DevDon-iOS commented Sep 16, 2026 •

Copy link
Copy Markdown
Collaborator

작업 내용

관리자 로그인 여부와 관계없이 접속 활동을 저장하던 문제를 수정합니다. 로그인 성공 시 브라우저에 전용 서명 쿠키를 발급하고 /api/activity에서 DB 접근 전에 제외합니다.

  • 400일 쿠키를 제외 요청마다 갱신하며 로그아웃·세션 만료 후에도 유지
  • 패치 전 유효 관리자 세션은 활동 요청 또는 로그아웃 시 자동 등록
  • HttpOnly·SameSite=Lax·production Secure 적용, 관리자 인증 권한과 분리
  • 로그인 실패·쿠키 위조·일반 방문·기존 세션 전환을 회귀 테스트
  • 운영 문서에 브라우저별 적용 범위와 한계 추가

검증 내용

  • npm run lint: 통과
  • npm run typecheck: 통과
  • npm test: 단위 테스트 20개 통과
  • npm run build: production 빌드 통과
  • node --env-file=.env.test --import tsx apps/web/scripts/migrate.ts: 격리 DB 마이그레이션 통과
  • node --env-file=.env.test --import tsx --test apps/web/tests/admin-activity.integration.ts apps/web/tests/activity.integration.ts apps/web/tests/api.integration.ts: API·PostgreSQL 통합 테스트 3개 통과
  • apps/web에서 node --env-file=../../.env.test ../../node_modules/@playwright/test/cli.js test tests/browser/admin-activity.spec.ts: 헤드리스 브라우저 테스트 1개 통과
  • 브라우저 최초 검증은 응답 본문 읽기에서 시간 초과. 브라우저에서는 쿠키 보존·HTTP 상태·제외 응답 헤더를 확인하고, 본문 및 실제 저장 건수는 API·DB 통합 테스트로 확인하도록 변경 후 통과
  • git diff --check: 통과. 전체 변경 자체 리뷰 완료
  • 임시 리소스 최대 3개 그룹(DB·웹·헤드리스 브라우저), 모두 종료. PID 28471/28702, 포트 55430/4315, 헤드리스 브라우저 프로세스 부재 확인

위험 및 제한

  • 사용자 요청에 따라 main 기반 및 main 대상 PR입니다. develop의 카메라 기능을 가져오지 않습니다.
  • 동일 사이트·동일 브라우저/프로필에서 쿠키가 유지되는 동안 적용합니다. 쿠키 삭제/차단, 시크릿 모드, 다른 브라우저, SESSION_SECRET 변경 시 재로그인이 필요합니다.
  • 패치 전에 이미 만료·삭제된 관리자 로그인 이력을 소급 식별할 수 없습니다. 기존 로그는 삭제하지 않습니다.
  • 활동 HTTP 요청은 발생할 수 있지만 애플리케이션 활동 DB에는 저장하지 않습니다. 호스팅 접근 로그는 별도입니다.
  • 화면 변경 및 DB 스키마 변경 없음. 사용자 요청에 따라 main 병합 및 운영 배포를 완료했습니다.
  • 원격 전체 CI 통과: https://github.com/DeveloperAcademy-POSTECH/2026-C6-A01-BenchMark/actions/runs/35066561397

관련 이슈

Closes #30

운영 배포 결과

  • 전체 CI 성공 후 main 병합: a86507231f0eebb83298f60907d8e9a7536acb19
  • 해당 커밋의 git archive만 Railway production/mat-web에 업로드
  • 배포 64a12ba9-4284-43b8-8748-27bfa33038a2: SUCCESS, healthcheck 통과
  • 운영 주소: https://mat-web-production.up.railway.app
  • 실제 HTTPS에서 health 200, /camera 404, 관리자 로그인 성공, Secure/HttpOnly/SameSite 및 400일 쿠키 확인
  • 로그인 후 및 로그아웃 후 activity accepted: 0 확인, 제외 쿠키만으로 관리자 API 접근 시 401
  • 일반 요청의 잘못된 이벤트는 400으로 거절. 운영 검증에서 활동 이벤트를 생성하지 않음
  • 이번 배포 단계에서는 로컬 장기 실행 리소스를 시작하지 않음. 운영 mat-web 서비스는 사용자 요청대로 실행 유지

@DevDon-iOS
DevDon-iOS marked this pull request as ready for review September 16, 2026 07:06
@DevDon-iOS
DevDon-iOS merged commit a865072 into main Sep 16, 2026
1 check passed
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