JWT(JSON Web Token)란?

Jaehyun Ahn·2023년 9월 23일
0
post-thumbnail

멋쟁이사자처럼 11기 중앙 해커톤을 준비하면서 백엔드 측이 소셜 로그인을 구현할 때 'JWT'를 넘겨 준다고 하였다. JWT라는 용어에 대해 처음 접해본 나는 프로젝트의 원활한 진행을 위해 사전 공부가 필요하다고 느꼈고, 공부를 진행했다.

JWT란 ?

보통 서버가 클라이언트를 인증하는 방식에는 대표적으로 Cookie, Session, Token이 있다.

JSON Web Token 의 줄임말로, 인증에 필요한 정보들을 암호화 시킨 JSON 토큰을 의미한다.
JWT 인증 방식은 HTTP 헤더에 Access Token을 담아 서버가 클라이언트를 식별하는 방식이다.

JWT를 사용하는 이유

Cookie 방식은 보안에 취약하다. (요청 시 헤더에 쿠키를 담아서 보내기 때문에)
Session 방식은 서버 부하라는 단점을 가진다. (서버에 있는 세션 저장소를 사용하기 때문)

반면에 JWT는 Access Token (인증)과 Refresh Token(토큰 재발급)을 이용하여 이전 방식들의 단점들을 보완한다.


예전에 이미 JWT 방식으로 프로젝트를 진행한 적이 있었다. Access Token을 받아 로그인 기능을 구현하였는데, 그때는 Access Token은 말 그대로 접속할 때 쓰이는 토큰이구나 라고 생각했고, Access Token이 JWT에서 나온 개념인지도 몰랐다. 또한 "Access Token 방식 대신 Cookie, Session을 이용하여 하는게 더 좋을 거 같다" 라는 생각을 한 적이 있다.🥲

이번에 JWT에 대해 알아보면서 Cookie, Session 방식들의 단점을 보안하는 것이 JWT라는 것을 알았고, 머리속에 섞여있던 개념들을 정리할 수 있었다.

참고자료

https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-JWTjson-web-token-%EB%9E%80-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC

profile
미래 프론트 어쩌고

0개의 댓글