인증 문제 디버깅을 위한 5가지 쿠키 트릭
웹 앱에서 인증 문제를 디버깅하는 작업은 시간이 많이 걸립니다. 다양한 사용자 유형을 테스트하기 위해 매번 새 계정을 만들거나 모든 쿠키를 삭제하느라 시간을 허비하곤 합니다.
데이터베이스를 건드리지 않고도 어떤 상태든 테스트할 수 있습니다. 쿠키를 직접 조작하는 다음 다섯 가지 기술을 활용해 보세요.
- 모든 것을 삭제하는 대신 특정 쿠키만 타겟팅하기
모든 쿠키를 삭제하면 개발 서버 세션, 로컬 스토리지, Stripe 테스트 모드까지 모두 사라집니다. 대신 인증(auth) 쿠키만 삭제하세요.
일반적인 이름은 다음과 같습니다:
- session
- sid
- auth_token
- _session_id
DevTools에서 Application > Cookies > [본인의 도메인]으로 이동합니다. 세션 쿠키를 마우스 오른쪽 버튼으로 클릭하고 Delete를 선택하세요. 이렇게 하면 다른 설정은 그대로 유지하면서 사용자 상태만 로그아웃 상태로 초기화할 수 있습니다.
- 온보딩 플래그를 삭제하여 신규 사용자 시뮬레이션하기
앱은 사용자가 설정을 완료했는지 추적하기 위해 쿠키를 사용합니다. onboarding_complete나 first_visit 같은 이름을 찾아보세요.
신규 사용자 흐름을 테스트하려면:
- 현재 쿠키를 내보냅니다(Export).
- 온보딩 플래그를 삭제합니다.
- 페이지를 새로고침합니다.
이를 통해 새 계정 없이도 단계별 UI 분기점을 테스트할 수 있습니다.
- 스냅샷을 사용하여 30초 만에 사용자 역할 전환하기
앱에 Admin이나 Guest와 같은 다양한 역할이 있다면, 매번 수동으로 로그인/로그아웃하지 마세요. 쿠키 스냅샷을 사용하세요.
- Admin으로 로그인합니다. 쿠키를
admin-session.json으로 내보냅니다. - 일반 사용자(Regular User)로 로그인합니다. 쿠키를
user-session.json으로 내보냅니다. - 역할을 전환하려면 JSON 파일을 가져오기(Import)한 뒤 페이지를 새로고침하기만 하면 됩니다.
서버는 세션 토큰을 신뢰합니다. 여러분은 이미 생성된 유효한 세션을 사용하는 것입니다. 이 JSON 파일들은 민감한 세션 토큰을 포함하고 있으므로 로컬에 안전하게 보관하세요.
- 만료된 세션을 즉시 테스트하기
세션이 만료될 때까지 몇 시간씩 기다리지 마세요. 만료 날짜를 수동으로 변경하면 됩니다.
DevTools에서 세션 쿠키의 Expires 열을 더블 클릭합니다. 날짜를 과거의 시점으로 설정하세요. 페이지를 새로고침하면 세션이 타임아웃되었을 때 어떤 일이 발생하는지 정확히 확인할 수 있습니다.
- 로그인 리다이렉트 루프 해결하기
루프는 주로 오래되었거나 형식이 잘못된 쿠키 때문에 발생합니다. 세션은 존재하지만 서버에서 이를 거부하는 경우입니다.
원인을 찾으려면:
- 모든 인증 관련 쿠키를 식별합니다.
- 하나씩 삭제합니다.
- 삭제할 때마다 페이지를 새로고침합니다.
루프가 멈추는 순간, 문제가 된 쿠키를 찾은 것입니다. 이를 통해 문제가 잘못된 토큰 때문인지, 아니면 잘못된 쿠키 도메인 때문인지 파악할 수 있습니다.
DevTools와 CookieJar 같은 확장 프로그램은 브라우저 레벨에서 작동하므로, 이 방법들은 HttpOnly 쿠키에도 적용됩니다.