JSON 웹 토큰 튜토리얼 및 Python 예
본 논문에서는 JSON 웹 토큰을 사용하여 REST API를 보호하는 방법을 배울 것입니다.JSON 웹 토큰은 개방적인 업계 표준RFC 7519 방법으로 쌍방 간에 안전하게 성명을 표시하는 데 사용된다.JWT는 공교롭게도 Firebase, 구글, 마이크로소프트, Zendesk 등의 지원을 받았다.
비유로 이해하다
우리는 모두 차용증 한 장을 가지고 있다.일단 ATM기에 접속하면 우리는 돈을 인출할 수 있다.차용증은 내 계좌에만 들어갈 수 있고 기한이 지난 후에는 사용할 수 없다.JSON 웹 토큰과 유사합니다. 인증 시스템에 토큰을 삽입하고 제한된 데이터에 접근할 수 있습니다.
JWT 작업
JWT를 사용하여 인증을 할 때, 브라우저의 로컬 저장소나 세션 저장소에 영패를 저장합니다.취소하려면 영패만 삭제하면 됩니다.다른 증명할 만한 것은 없다.이런 방법으로 신분 검증을 하는 장점 중 하나는 영패가 데이터베이스에 오래 존재하지 않기 때문에 신분 검증을 할 때 세션 저장을 조회할 필요가 없다는 것이다.
이 간단한 삽화를 빌려 보도록 하겠습니다. -
JWT의 구조
JSON 웹 토큰의 예:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ0b3B0YWwuY29tI iwiZXhwIjoxNDI2NDIwODAwLCJodHRwOi8vdG9wdGFsLmNvbS9qd3RfY2xhaW1zL2lzX2FkbWluI jp0cnVlLCJjb21wYW55IjoiVG9wdGFsIiwiYXdlc29tZSI6dHJ1ZX0.yRQYnWzskCZUxPwaQupWk iUzKELZ49eM7oWxAQK_ZXw
세 부분이 a로 분리되어 있기 때문에,각 섹션의 작성 방식은 다릅니다.우리는 세 가지 부분이 있다.
<base64-encoded header>.<base64-encoded payload>.<base64-encoded signature>
제목JWT 헤더 성명 인코딩의 대상은 JSON 웹 영패(JWT)이고, JWT는 HMAC SHA-256 알고리즘을 사용하여 MACE를 진행하는 JWS이다.예:
{
“alg”: “HS256”,
“typ”: “JWT”
}
"alg"는 영패에 서명하는 알고리즘을 지정하는 문자열입니다."typ"은 영패의 문자열입니다. 기본값은 "JWT"입니다.이것은 JWT 영패라고 지정합니다.
유효 하중 (클레임)
성명이나 유효 하중은 실체에 대한 성명으로 정의할 수 있으며 안전 정보와 영패 자체에 대한 추가 메타데이터를 포함한다.
다음은 클레임 속성입니다.
서명
서명
JSON Web Signatre 사양에 따라 최종 서명 토큰을 생성합니다.JWT 헤더, 인코딩된 성명을 통합하고 암호화 알고리즘을 적용합니다(예를 들어 HMAC SHA-256).서명된 키는 서버에서 가지고 있기 때문에 기존 영패를 검증할 수 있습니다.
JWT의 유행 라이브러리
Python에서 JWT 만들기
유효 하중 인코딩
>>> import jwt
>>> encoded = jwt.encode({'some': 'payload'}, 'secret', algorithm='HS256')
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzb21lIjoicGF5bG9hZCJ9.4twFt5NiznN84AWoo1d7KO1T_yoc0Z6XOpOVswacPZg'
디코딩 서버의 유효 부하>>> jwt.decode(encoded, 'secret', algorithms=['HS256'])
{'some': 'payload'}
이 문장이 도움이 되기를 바랍니다.마음대로 당신의 생각을 평론에 써 주십시오.이 글은 Apcelent Tech Blog에 처음 등장했다.
Reference
이 문제에 관하여(JSON 웹 토큰 튜토리얼 및 Python 예), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/apcelent/json-web-token-tutorial-with-example-in-python-23kb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)