티스토리 뷰

Back-End

JSON Web Token에 대한 정리

제이나린 2021. 1. 30. 10:00
728x90
반응형

파이썬으로 회원인증을 구현을 하였지만, 근본적인 이해도는 부족하여 구현 및 수정에 매우 어려움이 있었다.

이해 대해 이 어려움에 대한 근본적인 설명부터 이해를 시작하려고 이 글을 썻다.

 

 

 

JWT는 JSON Web Token의 약자로 데이터가 JSON으로 이루어져 있는 토큰을 의미한다.

 

 

사용자의 로그인 상태를 서버에서 처리하는 데 사용할 수 있는 인증방식이 두가지가 있다.

1. 세션 기반 인증 시스템

쉽게 이야기 하면 서버가 사용자 로그인 중임을 기억하고 있다는 뜻이다.

세션 기반 인증시스템 순서

단점

세션 기반 인증의 단점은 서버를 확장하기가 번거로워 질 수 있다는 점이다. 예를 들어 서버의 인스턴스가 여러개가 될 경우, 모든 서버끼리 같은 세션을 공유해야 하므로 세선 전용 데이터베이스를 만들고 여러가지 신경써야 할 점이 많다.

 

 

2. 토큰 기반 인증 시스템

토큰은 로그인 이후 서버가 만들어 주는 문자열이다.

토큰 기반 인증 시스템

해당 문자열 안에는 사용자의 로그인 정보가 들어 있고, 해당 정보가 서버에서 발급되엇음을 증명하는 서명이 들어있다. 이 서명 데이터해싱 알고리즘을 통해 만들어지는데, 주로 HMAC SHA256 혹은 RSA SHA256알고리즘이 사용된다.

 

서버에서 만들어 준 토큰은 서명이 있어 무결성이 보장된다.

무결성 : 정보가 변경되거나 위조되지 않았음을 의미하는 성질이다.

 

장점

- 서버에서 사용자 로그인 정보를 기억하기 위해 사용하는 리소스가 적다.

- 서버의 확장성이 매우 높다.

   로그인 상태를 지닌 토큰을 가지고 있으므로 사용자 입장에서 서버의 확장성이 매우 높다.

- 서버끼리 사용자의 로그인 상태를 공유하고 있을 필요가 없다.

 

 

 

참고 서적

리액트를 다루는 기술
국내도서
저자 : 김민준
출판 : 길벗 2018.08.01
상세보기
728x90
반응형
댓글
250x250
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함