본문 바로가기

책&공부/API

jwt 사용 시 토큰을 반환하는 방식 짧은 정리

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