JWT 방식은 클라이언트의 인증 요청이 있을 때, JSON 형식으로 된 토큰을 반환해줘야한다.
이 토큰의 관리는
- request의 body
- query parameter
- 쿠키
- 커스텀 헤더 : Authorization 헤더
구글링 결과 네가지 방식을 쓴다.
request body는 body를 안쓰는 메서드의 경우(get, delete 등) 사용할 수가 없고,
query parameter는 참조가 너무 쉬워서 토큰이 탈취 당할 때 보안이 어려운 jwt 방식에서는 거의 안쓰이는 것 같다.
쿠키는 보안성 측면에서는 제일 좋지만 모바일 환경에서는 별도 설정을 해줘야하는 문제가 있다.
Authorization 헤더는 커스텀 헤더인데 Authorization이라는 이름을 설정하고 <type> <credentials> 형식으로
설정하도록 권장한다. jwt 같은 경우는 Bearer를 타입으로 쓰는데 RFC 표준에서 JWT와 OAuth는 해당 타입을 쓰도록 정하고 있다.
https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Authorization
Authorization - HTTP | MDN
HTTP Authorization 요청 헤더는 서버의 사용자 에이전트임을 증명하는 자격을 포함하여, 보통 서버에서 401 Unauthorized 상태를 WWW-Authenticate (en-US) 헤더로 알려준 이후에 나옵니다.
developer.mozilla.org