@PostMapping("/logout")
public void logout(@RequestHeader(HttpHeaders.AUTHORIZATION) String accessToken,
@RequestHeader("REFRESH_TOKEN") String refreshToken){
authUseCase.logout(accessToken.substring(7), refreshToken);
}
그러나 refresh token은 HttpHeaders가 아닌 custom header로 넘겨받았는데,
서버에서 REFERSH_TOKEN에 대한 header 값이 존재하지 않는다 라고 에러를 발생시킨다.
로컬에서는 정상 작동이 되지만, ec2 개발 서버에서는 값을 못찾는 것을 보고
nginx에서 필터링이 작용할거라고 추측할 수 있었다.
그래서 찾아본 결과 nginx에서는 header에 underscore 사용시 default로
무시한다.
공식문서를 통해 찾은 해결법은
또 다른 방법으로는
위와 같은 방법들이 있지만
나는 nginx에서 default로 underscore를 off로 한 이유가 있을 것 같아서
custom header 네이밍을 REFRESH_TOKEN -> Refresh-Token으로 변경해서 해결했다.
http://nginx.org/en/docs/http/ngx_http_core_module.html#underscores_in_headers
잘 봤습니다. 좋은 글 감사합니다.