티스토리 뷰
쿠키, 세션 콘텐츠에서 웹의 비연결성과 무상태성 때문에 상태를 유지하는 쿠키와 세션을 사용한다고 했다.
엄밀히 말하자면 쿠키안에 세션을 넣는거니까 둘다 쿠키방식 스타일이라고 할 수도 있겠다!
쿠키와 세션의 단점도 있었다.
쿠키는 중간에 탈취될 수 있고, 세션은 서버측에서 처리하기 때문에 사용자가 많아지면 과부하가 걸릴 수 있다.
이러한 단점을 해결하기 위해 나온 방식이 토큰 방식이다.
데이터를 토큰으로 치환하여 원본데이터를 보호하는 방식으로 JWT방식이 있다.
JWT(Json Web Token)
Json 포맷을 활용하는 토큰 방식으로 암호화 알고리즘에 의해 치환되어 안전하다. 보안수준 자체가 높다. (해시256 사용)
또한 JWT자체가 모든 정보를 가지고 있어 이를 검증하기 위한 다른 수단이 필요 없다는게 큰 장점이다.
즉, 서버에 저장할 필요도, 데이터베이스를 사용할 필요도 없다! 그러니까 과부하가 없고 서버의 자원을 절약할 수 있다.
이는 OAuth도 가지지 못한 장점이다.
JWT의 구조는 다음과 같다.
1. Header
2. Payload
3. Signature
동작 방식은 다음과 같다.
1) 클라이언트에서 로그인 정보(username, password) 를 담아 요청한다. (POST)
2) 서버에서 로그인 정보를 바탕으로 비밀번호를 암호화해 JWT 토큰을 보낸다. (서버에 저장 x)
3) 클라이언트가 JWT를 로컬에 저장한다.
4) 인증할 때마다 클라이언트가 JWT를 함께 보낸다.
5) 서버에서 디코딩하여 유저정보를 확인하고 응답을 보낸다.
공식문서 설명도 추가해보았다.
토큰 역시 보안이 중요하다고 한다.
'Programming basic' 카테고리의 다른 글
쿠키, 세션 그리고 디장고 인증(Authentication) (0) | 2021.12.14 |
---|---|
docstring 작성법 (0) | 2021.11.29 |
HTTP 상태 코드 (0) | 2021.10.25 |
변수 및 식별자 표기법 3가지 (0) | 2021.10.20 |
추상화와 다양한 언어 (0) | 2021.10.20 |
- Total
- Today
- Yesterday
- 싸피6기
- ssafy후기
- 개발자책추천
- 개발자
- 클린코드
- 개발자로드맵
- 개발도서추천
- intj여자
- ssafy결과
- 클린코더
- 개발언어순위
- 맥과윈도우로깃허브
- ssafy6기
- 임대차3법
- 개발자커리
- 깃허브계정
- 개발자도서추천
- 코딩도서
- 싸피
- SSAFY
- 개발언어추천
- 폰트추천
- 폰트
- 디즈니얼굴
- 한글무료폰트추천
- 상업용무료폰트
- 무료폰트추천
- 깃허브계정2개
- ssafy합격후기
- 브왈라
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |