컬쥐네 다락방
JWT와 OAuth 차이점 본문
면접 대비를 위해 공부하던 중 JWT와 OAuth 를 비교하는 질문을 봤다.
찾아보니 이 둘을 비교하는 것은 흔한 질문이지만, 좋은 접근은 아니다.
JWT가 과일이라면 OAuth는 과일을 담는 상자라고 볼 수 있다.
JWT는 Token의 한 형식이고, OAuth는 하나의 Framework이다.
여기서 OAuth가 Framework인 이유는
1. 토큰을 요청할 때 사용할 수 있어야하는 요청 및 응답의 순서와 형식만 있다.
2. 각기 다른 시나리오에서 어떤 방식으로 권한 부여 유형을 사용할지 정한다.
그리고 JWT는 이러한 Framework에서 발생하는 산출물로 볼 수 있다.
물론 Auth Framework를 통해 나온 OAuth Bearer token과 단순한 JWT 토큰은 차이가 있다.
OAuth Token은 어떤 사용자의 정보와 같은 중요한 정보가 있는 토큰이 아니다. 그래서 이 토큰을 사용하는 사용자는 이 토큰이 가지고 있는 정보에 대해서 아는 바가 전혀 없다.
OAuth Token이 가지고 있는 정보는 일련의 랜덤한 문자열인데, 이는 일종의 Pointer로 OAuth Framework로 들어가서 해당 정보가 저장되어 있는 주소를 확인할 수 있는 인식표이다.
물론 이때 토큰이 JWT 유형의 토큰이 될 수도 있다.!
반대로 JWT 토큰은 명확한 정보를 가지고 있는 토큰이다.
토큰의 크기는 300 ~ 500 byte. 혹은 가지고 있는 속성 정보에 따라 더 커지기도 한다.
이때문에 데이터베이스에서 사용자 정보를 조작하더라도 토큰에 직접 적용할 수 없는 문제점이 있고, 토큰이 커지면서 주고 받는 데이터 트래픽 크기에 영향을 미칠 수 있는 단점이 있다.
예전에 JWT 구현하기 위해 공부했던 내용 :
Spring Security 심화 공부 - JWT 회원가입, 로그인 기능
Spring Security 최근 Spring Security를 사용해 회원 가입과 로그인을 구현하는 것을 공부했었는데, 이 과정에서 JWT를 이용해 사용자를 인증하는 방법에 대해 공부했다. 그땐 예제를 가지고 로그인과 회
lewis-kku.tistory.com
'웹 개발 > Java,Spring' 카테고리의 다른 글
getById()와 findById()의 차이점 (0) | 2021.09.03 |
---|---|
Flyway를 이용한 DB 초기화 (0) | 2021.08.07 |
RESTful API 란? (0) | 2021.06.29 |
Spring MVC 란? (0) | 2021.06.14 |
컴파일 에러 VS 런타임 에러 (0) | 2021.06.04 |