
Rest API 를 구현하고 테스트할 때 Postman을 사용하는 방법이 있지만,
IntelliJ IDEA에 내장된 HTTP Client 플러그인으로 Rest API 테스트를 쉽게 해볼 수 있다.
그래서 우리 팀은 모두 IntelliJ 환경으로 개발중이었기 때문에 .http 파일을 작성하여 테스트를 진행하였다.
Postman으로 이미 같은 파일로 인증/인가를 테스트 해보았고, 통과하였다.
로직은 문제가 없는 것으로 보였다. 하지만 HTTP Client 테스트는 쿠키를 설정하고 값을 가져오는 데 이상한 부분이 있었다.
다음은 내가 작성한 인증/인가 테스트의 한 부분이다.

로그인 요청을 하면 응답 쿠키를 저장하고, 로그아웃 요청과 리프레시 요청을 할 수 있다.

쿠키가 잘 저장되는 것을 확인하였다.

로그아웃은 잘 실행이 되나,

리프레시 요청은 토큰을 읽지 못하는 것이었다.
디버깅으로 어떤 값이 들어가는지 확인해보기로 했다.

N o W a y...
맙소사. {{refreshToken}} 값이 들어간다.
오탈자가 들어갔는지, 변수 지정을 잘못해준 것인지, 쿠키 헤더 지정을 잘못해준 것인지 확인해보았지만... 오타는 없었다.

심지어 지정할 수 없는 변수명을 입력하면 노란 줄을 띄워 알려주기까지 한다. 변수명을 입력하는 중괄호 {{ }} 에 포인터를 두면 구별되어 변수가 연결된다는 것도 쉽게 알 수 있다.
그런데 왜 문자열 {{refreshToken}} 이 들어가는 것일까 ?
정말 간단한 거였는데 깨닫기까지 오래 걸렸다.

HTTP 요청을 할 때, 한 번 쿠키 파일에 저장된 쿠키는 자동으로 함께 요청에 포함된다.
그러므로 Cookie를 명시해주면 안된다. 같은 헤더를 갖는 쿠키를 덮어 씌워 보내지게 된다.

해결되었다.