푸터 콘텐츠로 바로가기
PYTHON 도움말

PyJWT Python (작동 방식: 개발자 가이드)

Python 라이브러리 중에서 PyJWT는 Python 프로젝트에서 JSON 웹 토큰(JWT)을 편리하게 인코딩 및 디코딩할 수 있는 가장 인기 있는 Python 라이브러리입니다. JWT는 두 당사자 간에 전송될 클레임을 나타내는 간결하고 URL에 안전한 수단입니다. PyJWT 패키지는 Python에서 JSON 웹 토큰 구현을 간소화합니다. JWT 토큰은 웹 애플리케이션에서 인증 및 정보 교환에 널리 사용됩니다. 해당 패키지는 개발자를 지원하기 위해 온라인에 풍부한 문서를 제공합니다. 이 글에서는 IronSoftwareIronPDF 사용하여 PDF 문서를 생성하는 방법도 살펴보겠습니다.

주요 특징

  1. JWT 인코딩 및 디코딩: PyJWT를 사용하면 JWT를 쉽게 인코딩하고 디코딩할 수 있습니다. 토큰을 생성하려면 페이로드를 비밀 키와 알고리즘으로 인코딩한 다음 나중에 디코딩하여 페이로드를 검증할 수 있습니다.
  2. 다양한 알고리즘 지원: PyJWT는 HMAC(HS256, HS384, HS512) 및 RSA(RS256, RS384, RS512)를 포함한 다양한 토큰 서명 알고리즘을 지원합니다. 이 프로그램은 대칭형 알고리즘과 비대칭형 알고리즘을 모두 지원합니다.
  3. 클레임 유효성 검사: 이 라이브러리는 iss(발급자), sub(주체), aud(대상), exp(만료 시간)와 같은 표준 클레임 유효성 검사를 위한 내장 지원 기능을 제공하여 안전한 토큰 기반 인증을 지원합니다.

설치

PyJWT를 설치하려면 pip를 사용할 수 있습니다.

pip install pyjwt
pip install pyjwt
SHELL

암호화 기능을 추가로 지원하려면 crypto 옵션을 사용하여 설치하십시오.

pip install pyjwt[crypto]
pip install pyjwt[crypto]
SHELL

기본 사용법

다음은 Python 구현에서 PyJWT를 사용하는 간단한 예입니다.

import jwt

# Encoding a JWT
payload = {"Message": "IronPDF is an Awesome PDF library"}
secret = "your-256-bit-secret"
# Create the JWT token with a secret key using HS256 algorithm
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)

# Decoding a JWT
# Decode the JWT token to retrieve the original payload
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)
import jwt

# Encoding a JWT
payload = {"Message": "IronPDF is an Awesome PDF library"}
secret = "your-256-bit-secret"
# Create the JWT token with a secret key using HS256 algorithm
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)

# Decoding a JWT
# Decode the JWT token to retrieve the original payload
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)
PYTHON

이 예제에서는 HS256 알고리즘을 사용하여 페이로드와 비밀 키를 인코딩함으로써 JWT를 생성합니다. 그런 다음 토큰을 디코딩하여 원래 페이로드를 복원합니다.

출력

PyJWT Python (작동 방식: 개발자를 위한 가이드): 그림 1 - 디코딩 후 응답 페이로드 예

사용 사례

  1. 인증: JWT는 웹 애플리케이션에서 인증에 일반적으로 사용됩니다. 사용자가 로그인하면 서버는 JWT를 생성하고 서명된 토큰을 클라이언트로 반환합니다. 클라이언트는 이 토큰을 사용하여 사용자 신원을 확인할 수 있으며, 이후 요청에 토큰을 포함할 수 있습니다.
  2. 정보 교환: 당사자들은 JWT를 사용하여 안전하게 정보를 전송할 수 있습니다. 페이로드에는 어떤 데이터든 포함될 수 있습니다. 토큰의 서명은 토큰의 무결성을 보장합니다.

IronPDF 소개합니다

PyJWT Python (작동 방식: 개발자를 위한 가이드): 그림 2 - IronPDF for Python: Python PDF 라이브러리

IronPDF 는 HTML, CSS, 이미지 및 JavaScript 사용하여 PDF를 생성, 편집 및 서명할 수 있는 강력한 Python 라이브러리입니다. 이 제품은 최소한의 메모리를 사용하면서도 고품질의 성능을 제공합니다. 사용자는 HTML에서 PDF를 생성하고 , PDF 문서를 병합 또는 분할하고 , PDF에서 텍스트와 이미지를 추출하고 , 워터마크를 적용하고, PDF를 JPEG 및 PNG와 같은 이미지 형식으로 래스터화하고 , PDF 파일을 암호화하는 등 다양한 작업을 수행할 수 있습니다. IronPDF 다양한 PDF 작업 기능을 제공합니다.

IronPDF 의 주요 기능

HTML을 PDF로 변환

사용자는 HTML 파일, HTML 문자열 및 URL을 PDF로 변환할 수 있습니다. 예를 들어, IronPDF 의 Chrome PDF 렌더러를 사용하여 웹페이지를 PDF로 렌더링할 수 있습니다 .

크로스 플랫폼 지원

IronPDF 는 Python 3 이상 버전을 위해 설계되었으며 Windows, Mac, Linux 또는 클라우드 플랫폼에서 실행됩니다.

IronPDF 는 .NET , Java , PythonNode.js 버전으로도 제공됩니다.

편집 및 서명

사용자는 IronPDF 사용하여 속성을 설정하고, 암호 및 권한으로 보안을 추가하고, PDF에 디지털 서명을 적용할 수 있습니다.

페이지 템플릿 및 설정

IronPDF 사용하면 머리글, 바닥글, 페이지 번호 및 조정 가능한 여백을 사용하여 PDF 문서를 사용자 지정할 수 있습니다. 또한 반응형 레이아웃과 사용자 지정 용지 크기를 지원합니다.

표준 준수

IronPDF 패키지는 PDF/A 및 PDF/UA와 같은 PDF 표준을 준수합니다. 이 라이브러리는 UTF-8 문자 인코딩을 지원하며 이미지, CSS, 글꼴과 같은 자산을 처리합니다.

IronPDF 와 PyJWT를 사용하여 PDF 문서를 생성합니다.

IronPDF 필수 조건

  1. IronPDF 기반 기술로 .NET 6.0을 사용합니다. 그러므로 시스템에 .NET 6.0 런타임이 설치되어 있는지 확인하십시오.
  2. Python 3.0 이상: Python 버전 3 이상이 설치되어 있어야 합니다.
  3. Pip: IronPDF 패키지를 설치하려면 Python Install-Package 프로그램인 pip를 설치하세요.

먼저 프로젝트 루트에 스크립트를 추가할 Python 파일을 생성해 보겠습니다. 이 예제에서는 코드 편집기로 Visual Studio Code를 사용합니다.

Visual Studio Code를 열고 파일을 생성하세요, pyjwtDemo.py.

IronPDF 라이브러리를 설치하세요:

pip install ironpdf
pip install pyjwt
pip install ironpdf
pip install pyjwt
SHELL

다음으로 아래 코드를 추가하여 IronPDF 및 PyJWT Python 패키지의 사용법을 보여주세요.

import jwt
from ironpdf import ChromePdfRenderer, License

# Apply your license key
License.LicenseKey = "your-license-key"

# Initialize HTML content to be converted into PDF
content = "<h1>Awesome IronPDF with PyJWT</h1>"
content += "<h2>Encoding a JWT</h2>"

# Encoding a JWT
payload = {"Message": "IronPDF is an Awesome PDF library"}
secret = "your-256-bit-secret"  # Secret key for signing
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)  # Print the generated JWT

# Append details to the HTML content
content += f"<p>Message: {payload['Message']}</p>"
content += f"<p>Secret: {secret}</p>"
content += f"<p>Generated Token: {token}</p>"

# Decoding a JWT
content += "<h2>Decoding a JWT</h2>"
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)  # Print the decoded payload

# Append decoded payload details to the HTML content
content += f"<p>Decoded Token: {decoded_payload}</p>"

# Generate PDF using IronPDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(content)

# Export PDF to a file
pdf.SaveAs("Demo-pyjwt.pdf")
import jwt
from ironpdf import ChromePdfRenderer, License

# Apply your license key
License.LicenseKey = "your-license-key"

# Initialize HTML content to be converted into PDF
content = "<h1>Awesome IronPDF with PyJWT</h1>"
content += "<h2>Encoding a JWT</h2>"

# Encoding a JWT
payload = {"Message": "IronPDF is an Awesome PDF library"}
secret = "your-256-bit-secret"  # Secret key for signing
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)  # Print the generated JWT

# Append details to the HTML content
content += f"<p>Message: {payload['Message']}</p>"
content += f"<p>Secret: {secret}</p>"
content += f"<p>Generated Token: {token}</p>"

# Decoding a JWT
content += "<h2>Decoding a JWT</h2>"
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)  # Print the decoded payload

# Append decoded payload details to the HTML content
content += f"<p>Decoded Token: {decoded_payload}</p>"

# Generate PDF using IronPDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(content)

# Export PDF to a file
pdf.SaveAs("Demo-pyjwt.pdf")
PYTHON

코드 설명

이 코드 스니펫은 jwt (JSON 웹 토큰) 라이브러리를 IronPDF와 함께 사용하여 JWT 인코딩 및 디코딩 예제를 포함한 PDF 문서를 생성하는 방법을 보여줍니다.

다음은 각 코드 구성 요소의 기능에 대한 개요입니다.

  1. 가져오기 및 라이선스 키 설정:

    JSON 웹 토큰 기능을 위한 jwt 라이브러리와 PDF 생성을 위한 IronPDF의 ChromePdfRenderer를 가져옵니다. IronPDF 의 기능을 활성화하기 위한 라이선스 키를 설정합니다.

  2. HTML 콘텐츠 설정:

    PDF 문서에 포함될 HTML 마크업으로 content 변수를 초기화하여 프로세스의 다양한 단계를 설명합니다.

  3. JWT 인코딩:

    • JWT (payload)에 인코딩될 데이터를 포함하는 페이로드 사전을 정의합니다.
    • SHA-256 (HS256) 알고리즘을 사용하여 JWT에 서명하기 위한 비밀 키 (secret)를 지정합니다.
    • jwt.encode() 함수를 사용하여 JWT 토큰을 생성하고 출력합니다.
  4. JWT 디코딩:

    • JWT 디코딩을 보여주는 HTML 마크업을 추가합니다.
    • 이전에 생성된 JWT (token)를 동일한 비밀과 인코딩에 사용된 알고리즘으로 jwt.decode() 함수를 사용하여 디코딩합니다.
  5. PDF 생성:

    • ChromePdfRenderer를 사용하여 content HTML 문자열을 PDF 문서로 렌더링하고 생성된 PDF 파일을 "Demo-pyjwt.pdf"로 저장합니다.

이 설정을 통해 IronPDF 에서 JWT를 사용하여 전문가 수준의 PDF를 생성하는 방법을 보여주는 PDF 문서를 만들 수 있습니다.

출력

PyJWT Python (작동 방식: 개발자를 위한 가이드): 그림 3 - 예제 콘솔 출력

PDF

PyJWT Python (작동 방식: 개발자를 위한 가이드): 그림 4 - IronPDF를 활용한 예제 PDF 출력

IronPDF 라이선스

PyJWT Python (작동 방식: 개발자를 위한 가이드): 그림 5 - IronPDF 라이선싱 페이지

IronPDF 사용자가 구매 전에 다양한 기능을 확인해 볼 수 있도록 평가판 라이선스 키를 제공합니다.

IronPDF 패키지를 사용하기 전에 스크립트 시작 부분에 라이선스 키를 배치하십시오.

from ironpdf import License

# Apply your license key
License.LicenseKey = "your-key"
from ironpdf import License

# Apply your license key
License.LicenseKey = "your-key"
PYTHON

결론

PyJWT는 Python에서 JSON 웹 토큰을 다루기 위한 강력하고 유연한 라이브러리입니다. 사용이 간편하고 다양한 알고리즘을 지원하기 때문에 웹 애플리케이션에서 토큰 기반 인증 및 안전한 정보 교환을 구현하는 데 널리 사용됩니다. 반면에 IronPDF 는 다양한 기능을 갖춘 PDF 생성 라이브러리로, 결과물을 표준적인 방식으로 문서화하는 데 도움이 됩니다. 이 두 라이브러리는 개발자들이 기술을 향상시키는 데 큰 도움이 될 수 있습니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해