인증에서 사용자가 자격 증명을 사용하여 성공적으로 로그인하면 JWT가 반환됨
JWT는 권한 부여와 정보 교환할 때 사용함
보안 문제를 방지하기 위해 세심한 주의가 필요함
-토큰을 필요 이상으로 오래 보관해서는 안 됨 !
-민감한 세션 데이터(서버에 저장되는)를 브라우저 저장소에 저장해서는 안 됨 !
구성
- 헤더
- JWT 토큰 유형
- HMAC SHA256 or RSA 같은 서명 알고리즘
{
"alg": "HS256", #알고리즘
"typ": "JWT" #토큰
}
- 유효 탑재량 : 클레임을 포함하는 페이로드
- 클레임은 사용자 및 추가 데이터에 대한 설명으로, 이름은 단 3자 !
- 페이로드는 클레임을 인코딩하는 것
- 등록된 클레임 : 미리 정의된 클레임 집합 ; iss, exp, sub, aud 등
- 공개 클레임 : 사용자들이 마음대로 정의 가능하지만 충돌방지 네임스페이스를 포함하는 URI 정의해야함
- 비공개 클레임 : 당사자 간에 정보를 공유하기 위한 맞춤 클레임
{
"sub": "1234567890", #등록된 클레임
"name": "John Doe",
"admin": true
}
- 서명
- 인코딩된 헤더, 인코딩된 페이로드, 비밀, 헤더에 지정된 알고리즘을 가져와서 서명해야 함.
- 메시지가 도중에 변경되지 않았는지 확인하는 데 사용되며
개인 키로 서명된 토큰의 경우 JWT의 보낸 사람이 누구인지 확인할 수도 있습니다.
HMACSHA256(
base64UrlEncode(header) + "." + #헤더
base64UrlEncode(payload), #페이로드
secret)
JWT 에 대해 더 알고싶다면 클릭 !
반응형
'STUDY > Python' 카테고리의 다른 글
map 함수 | 산술 연산, 값변환 결과 | 시간날때마다 코드업 | 파이썬 기초 100제 (0) | 2022.05.13 |
---|---|
머신러닝? 선형회귀, 손실함수, 코랩 | 앞으로 배울 머신러닝 , 딥러닝 | 모국어가 어려워진다. (0) | 2022.05.12 |
쿠키&세션 | 둘의 차이점은? | HTTP의 비연결성 및 무상태성 특징을 보완한 기술 (0) | 2022.05.08 |
{%%}, {{ }}, {# #}, # ## ??? | Jinja2 | Flask에서 사용하는 텍스트 기반형식의 템플릿 (0) | 2022.05.08 |
주말계획 | 5월 7일-5월 8일 | 인스타 클론코딩과 타임 어택 테스트를 치루고 공부해야겠다 싶은 것들 (0) | 2022.05.07 |