반응형
JWT(Json Web Token)는 RFC7519 웹 표준으로 지정되어있고. JSON객체를 이용해서 토큰 자체에 정보들을 저장하고 있는 Web Token이라고 정의할 수 있다.
특히, JWT를 이용하는 방식은 무겁지않고 아주 간편하고 쉽게 적용할 수 있기 때문에 사이드 프로젝트를 진행할때는 아주 유용한 방식이라 아닐까 생각된다.
물론, 몇가지 고려해야할 사항들만 잘 대응하면 대규모 프로젝트에서도 충분히 사용될 수 있는 인증방식이라고 생각한다.
JWT는 Header, Payload, Signature 3개의 부분으로 구성되어있다.
Header : Signature를 해싱하기 위한 알고리즘 정보들이 담겨있다.
Payload : 서버와 클라이언트가 주고받는, 시스템에서 실제로 사용될 정보에 대한 내용들을 담고있다.
Signature : 토큰의 유효성 검증을 위한 문자열, 이 문자열을 통해 서버에서는 이 토큰이 유효한 토큰인지를 검증할 수 있다.
JWT의 장점
- 중앙의 인증서버, 데이터 스토어에 대한 의존성 없기 때문에 시스템 수평 확장 유리
- Base64 URL Safe Encoding을 이용하기 때문에 URL, Cookie, Header 어디에서든 사용가능
JWT의 단점
- Payload의 정보가 많아지면 네트워크 사용량 증가, 데이터 설계 고려 필요
- 토큰이 클라이언트에 저장되기 때문에 서버에서 클라이언트의 토큰을 조작할 수 없음
반응형