JWT 저장 위치
- JWT는 각 HTTP메시지의 헤더에 쿠키 형태로 저장된다.
JWT의 구성
- JWT는 Header, Payload, Signature 영역으로 구분된다.
- 각 영역은 '.' 기호로 구분된다.
- Header, Payload영역은 단순히 Encoding 된 것이기 때문에 누구든지 해석할 수 있다.
- Signature 영역은 Header와 Payload에 Signature key를 더하여 복호화 한 것이기 때문에 Signature Key값을 알지 못하면 해석할 수 없다.
JWT 예시 eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NzIwMTU2MDAsImlzcyI6InNldW5naG8iLCJleHAiOjE1NzIwODA1MTIsInN1YiI6Ii8iLCJzY29wZSI6InVzZXIifQ.DB5UC2Wk6hD4FytyLS2LdDLvk_QIoKRM92ksI2M0_Ig
구분선 삽입
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 / . /
eyJpYXQiOjE1NzIwMTU2MDAsImlzcyI6InNldW5naG8iLCJleHAiOjE1NzIwODA1MTIsInN1YiI6Ii8iLCJzY29wZSI6InVzZXIifQ / . /
DB5UC2Wk6hD4FytyLS2LdDLvk_QIoKRM92ksI2M0_Ig
- 첫 번째부터 각각 Header, Payload, Signature 영역에 해당한다.
JWT 발급 및 사용 과정
JWT 발급 과정
1. 사용자는 인증 서버(혹은 인증 서비스)를 통해 로그인을 한다.
2. 인증 서버는 데이터베이스를 통해서 사용자를 확인한다.
3. 사용자 관련 정보들을 인코딩하여 토큰을 생성한다.
4. 인증 서버는 토큰을 응답메시지의 헤더에 쿠키 형태로 담아서 발급한다.
JWT 사용 과정
5. 사용자는 요청 메시지의 헤더에 토큰을 담아서 서버를 호출한다.
6. 인증 서버(혹은 다른 서비스)는 토큰을 꺼내서 해독한다.
7. 토큰이 정상 해독되면 서비스를 수행한다.
8. 서버는 사용자에게 응답메세지를 반환한다.
JWT방식의 인증 기능 MSA프로젝트에 적용 계획
TokenManager와 TokenDecoder
- TokenManager는 TokenDeocder를 상속한다.
- TokenDecoder는 JWT를 해독하는 역할을 한다.
- TokenManager는 TokenDecoder의 기능을 동일하게 수행하며, 추가적으로 JWT를 생성하는 일을 한다.
TokenManager와 TokenDecoder의 배치 계획
- TokenManager를 웹 서비스에 배치
- 그리고 TokenDecoder는 나머지 서비스에 배치한다.
참고할 것
Session/Cookie방식과 JWT방식의 장단점
https://sanghaklee.tistory.com/47
[JWT/JSON Web Token] 로그인 / 인증에서 Token 사용하기
Introduction 웹 / 앱 개발을 하면 로그인 과정에서 반드시 만나게 되는 개념이 쿠키-세션 이다. 이미 많은 자료와 경험으로 인해 쿠키는 나쁜 놈 세션은 좋은 놈 , 로그인은 일단 세션으로 해야지라는 개념이 개..
sanghaklee.tistory.com
'IT기술 관련 > Software Architecture' 카테고리의 다른 글
[클린아키텍처]#5 컴포넌트의 간략한 역사 (1) | 2021.01.17 |
---|---|
[클린 아키텍처]#4 설계 원칙 - 개요, SRP (0) | 2020.10.25 |
[클린 아키텍처]#3 프로그래밍 패러다임 - 함수형 패러다임 (0) | 2020.10.17 |
[클린 아키텍처]#2 프로그래밍 패러다임 - 객체지향 패러다임 (0) | 2020.09.08 |
[클린 아키텍처]#1 프로그래밍 패러다임 - 구조적 패러다임 (0) | 2020.09.06 |