티스토리 뷰
파이썬으로 회원인증을 구현을 하였지만, 근본적인 이해도는 부족하여 구현 및 수정에 매우 어려움이 있었다.
이해 대해 이 어려움에 대한 근본적인 설명부터 이해를 시작하려고 이 글을 썻다.
JWT는 JSON Web Token의 약자로 데이터가 JSON으로 이루어져 있는 토큰을 의미한다.
사용자의 로그인 상태를 서버에서 처리하는 데 사용할 수 있는 인증방식이 두가지가 있다.
1. 세션 기반 인증 시스템
쉽게 이야기 하면 서버가 사용자 로그인 중임을 기억하고 있다는 뜻이다.
단점
세션 기반 인증의 단점은 서버를 확장하기가 번거로워 질 수 있다는 점이다. 예를 들어 서버의 인스턴스가 여러개가 될 경우, 모든 서버끼리 같은 세션을 공유해야 하므로 세선 전용 데이터베이스를 만들고 여러가지 신경써야 할 점이 많다.
2. 토큰 기반 인증 시스템
토큰은 로그인 이후 서버가 만들어 주는 문자열이다.
해당 문자열 안에는 사용자의 로그인 정보가 들어 있고, 해당 정보가 서버에서 발급되엇음을 증명하는 서명이 들어있다. 이 서명 데이터는 해싱 알고리즘을 통해 만들어지는데, 주로 HMAC SHA256 혹은 RSA SHA256알고리즘이 사용된다.
서버에서 만들어 준 토큰은 서명이 있어 무결성이 보장된다.
무결성 : 정보가 변경되거나 위조되지 않았음을 의미하는 성질이다.
장점
- 서버에서 사용자 로그인 정보를 기억하기 위해 사용하는 리소스가 적다.
- 서버의 확장성이 매우 높다.
로그인 상태를 지닌 토큰을 가지고 있으므로 사용자 입장에서 서버의 확장성이 매우 높다.
- 서버끼리 사용자의 로그인 상태를 공유하고 있을 필요가 없다.
참고 서적
|
'Back-End' 카테고리의 다른 글
Database : 데이터베이스에 기본 개요 정리 (0) | 2021.04.10 |
---|---|
벡앤드 프로그래밍 : Node.js의 Koa 프레임워크 (0) | 2021.02.06 |
- Total
- Today
- Yesterday
- 코딩테스트
- 자바스크립트
- 재공부
- node
- Coding Test
- array
- CSS
- 리덕스
- 노드
- node.js
- 리액트 유튜브
- 프로그래머스
- 뷰
- redux
- programmers
- 배열
- react
- Git
- 리액트 썸네일
- Visual Studio Code
- Switch
- 리액트
- 파이썬
- node-sass
- 함수
- mongodb
- 자바
- java
- javascript
- github
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |