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 정책을 먼저 점검해야 한다.
확인 순서
- 배포 전: 로컬에서 curl로 쿠키 전달 테스트
- 배포 후: 실제 배포 URL에서 같은 curl 요청 실행
- 응답 상태 코드와 본문 비교
- 401이 나오면 쿠키 설정이나 인증 로직 확인
- 200이지만 응답이 이상하면 응답 본문의 에러 메시지 확인
이런 식으로 배포 전에 미리 확인해두면, 배포 후 인증 에러로 인한 긴급 대응을 줄일 수 있다.