JWT (JSON Web Token) 이란?

Untitled

JWT (JSON Web Token)의 공식 홈페이지에서 소개글을 번역하자면, JWT는 개방형 표준(RFC 7519)으로 두 당사자간에 정보를 JSON 형태로 안전하게 전송하기 위한 방법이라고 소개한다.

일반적으로 클라이언트와 서버, **서비스와 서비스 사이 통신 시 권한 인가(Authorization)**를 위해 사용하는 토큰이다.

JWT의 장단점

장점

Stateless (무상태)

기존의 세션을 이용한 서버 기반 인증 방식의 경우 세션을 관리하기 위한 서버측 저장소에 대한 관리가 필요하지만, JWT는 서버에서 발급 후 검증만 하면 되기 때문에 서버측 저장소에 대한 관리가 필요 없다.

Scalability (확장성)

토큰 기반으로 하는 다른 인증 시스템에 접근할 수 있으므로 확장성이 좋다. 예를 들어, Google 로그인 등을 통한 어플리케이션 접근 등은 모두 토큰을 기반으로 인증하며, 선택적으로 이름이나 이메일 정보를 받을 수 있는 권한도 받을 수 있다.

Integrity (무결성)

JWT의 Secret key가 변경되면 Signature 영역이 변경된다. 이는 Token이 변조되었을 때 바로 알아차릴수 있음을 의미하므로 다시 말해, 콘텐츠가 변조되지 않았는지 확인할 수 있어 무결성을 보장한다.

단점

JWT 구조

Untitled