← 전체 글로 돌아가기

API

API 인증 쿠키가 제대로 전달되는지 배포 전에 확인하기

API 인증 쿠키 문제는 로컬과 배포 환경이 다를 수 있습니다. curl로 간단하게 상태 코드와 응답을 확인해서 배포 전에 문제를 찾는 방법을 기록했습니다.

개인 프로젝트에서 API 인증 쿠키 설정을 마친 후 배포할 때, 가장 먼저 확인할 건 쿠키가 정말 전달되는지다.

브라우저 DevTools에서 Network 탭을 열어도 되지만, 배포 환경에서는 curl로 직접 확인하는 게 더 빠르다.

curl로 요청 보내고 상태 코드 확인하기

가장 기본적인 확인 방법은 curl에 -i 옵션을 붙여서 응답 헤더와 상태 코드를 함께 본다.

curl -i 'https://example.com/api/items?page=1'

응답에서 봐야 할 것:

  • 상태 코드 401: 인증 실패. 쿠키가 전달되지 않았거나 쿠키 값이 유효하지 않음
  • 상태 코드 200: 인증 성공. 응답 본문이 실제 데이터인지 확인
  • 상태 코드 403: 권한 부족. 인증은 됐지만 해당 리소스에 접근 불가

쿠키를 포함해서 요청 보내기

API가 쿠키 기반 인증을 사용한다면, curl에서 쿠키를 함께 보내야 한다.

curl -i -b 'auth_token=abc123xyz' 'https://example.com/api/items?page=1'

-b 옵션으로 쿠키를 명시적으로 전달하면, 실제 쿠키 설정이 제대로 작동하는지 검증할 수 있다. 만약 이 요청이 200을 받으면, 쿠키 전달 자체는 정상이고 다른 곳에서 문제가 난 것 같다.

응답 본문도 함께 확인하기

curl -s 'https://example.com/api/items?page=1' | jq '.'

-s 옵션은 진행률 표시를 없애고, jq로 JSON 응답을 보기 좋게 정렬한다. 응답이 실제 데이터인지, 에러 메시지인지 확인할 수 있다.

로컬 개발 환경과 배포 환경 비교

같은 요청을 로컬 개발 서버와 배포된 서버에 각각 보낸 후 응답을 비교한다.

  • 로컬: http://localhost:3000/api/items?page=1 → 200 OK
  • 배포: https://example.com/api/items?page=1 → 401 Unauthorized

이런 차이가 나면, 배포 환경의 쿠키 설정이나 CORS 정책을 먼저 점검해야 한다.

확인 순서

  1. 배포 전: 로컬에서 curl로 쿠키 전달 테스트
  2. 배포 후: 실제 배포 URL에서 같은 curl 요청 실행
  3. 응답 상태 코드와 본문 비교
  4. 401이 나오면 쿠키 설정이나 인증 로직 확인
  5. 200이지만 응답이 이상하면 응답 본문의 에러 메시지 확인

이런 식으로 배포 전에 미리 확인해두면, 배포 후 인증 에러로 인한 긴급 대응을 줄일 수 있다.