跳過到頁腳內容
PYTHON 幫助

PyJWT Python(開發人員指南的工作原理)

在 Python 程式庫中,PyJWT 是最受歡迎的 Python 程式庫之一,提供了在 Python 專案中編碼和解碼 JSON Web Token (JWT) 的方便方法。 JWT 是一種緊湊、安全的方式來表示要在雙方之間傳輸的聲明。 PyJWT 套件能簡化 Python 中的 JSON Web Token 實作。 JWT 令牌廣泛應用於 Web 應用程式中的身份驗證和信息交換。 該套件在網上提供豐富的文檔支援開發者。 In this article, we will also look into IronPDF from IronSoftware to generate PDF documents later.

主要特點

  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 常用於 Web 應用程式中的身份驗證。 當用戶登錄後,伺服器生成 JWT 並將已簽名的令牌返回給客戶端。 客戶端可以使用此令牌驗證用戶身份,並在後續請求中包含該令牌。
  2. 信息交換:雙方可以安全地使用 JWT 進行信息傳輸。 載荷可以包含任何數據; 令牌的簽名確保其完整性。

介紹 IronPDF

PyJWT Python(它是如何運作的:開發者指南):圖 2 - IronPDF for Python: The Python PDF Library

IronPDF 是一個強大的 Python 程式庫,用於使用 HTML、CSS、影像和 JavaScript 來生成、編輯和簽名 PDF。 它在使用最小內存的同時提供高質量的性能。 Users can generate PDFs from HTML, merge or split PDF documents, extract text and images from PDFs, apply watermarks, rasterize a PDF to image formats like JPEG and PNG, encrypt PDF files, and more. IronPDF 提供廣泛的 PDF 操作範圍。

IronPDF 的主要特徵

HTML 到 PDF 轉換

用戶可以將 HTML 文件、HTML 字串和 URL 轉換為 PDF。 例如,使用 IronPDF 的 Chrome PDF 渲染器將網頁渲染為 PDF

跨平台支持

IronPDF 為 Python 3+ 版本設計,適用於 Windows、Mac、Linux 或雲端平台。

IronPDF is also available in .NET, Java, Python, and Node.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:安裝 Python 套件安裝工具pip以安裝 IronPDF 套件。

開始時,讓我們在專案根目錄中創建一個 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 Web Token) 庫和 IronPDF 來創建 PDF 文件,其中包含編碼和解碼 JWT 的示例。

以下是每個代碼部分的功能概述:

  1. 導入和許可金鑰設置

    導入 jwt 庫以實現 JSON Web Token 功能,並從 IronPDF 導入 ChromePdfRenderer 以生成 PDF。 為 IronPDF 設置許可金鑰以啟用其功能。

  2. HTML 內容設置

    初始化包含 HTML 標記的 content 變量,以在 PDF 文件中包含,說明流程中的不同步驟。

  3. 編碼 JWT

    • 定義一個載荷字典,其中包含要編碼到 JWT 的數據 (payload)。
    • 指定用於使用 SHA-256 (HS256) 的 HMAC 算法簽署 JWT 的秘密密鑰(secret)。
    • 使用 jwt.encode() 函數生成 JWT 令牌並打印出來。
  4. 解碼 JWT

    • 添加 HTML 標記以展示 JWT 解碼。
    • 使用與編碼相同的秘密和算法來解碼先前生成的 JWT(token)並進行解碼。
  5. PDF 生成

    • 使用 ChromePdfRenderercontent HTML 字串渲染為 PDF 文件,並將生成的 PDF 文件保存為 "Demo-pyjwt.pdf"。

此設置允許使用 IronPDF 來生成 PDF 文件,展示如何與 JWT 結合使用以產生成專業品質的 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 Web Token。 其易於使用和支持多種算法,使其成為實作基於令牌的身份驗證和安全的信息交換的熱門選擇。 另一方面,IronPDF 是一個多功能且功能豐富的 PDF 生成庫,可幫助文件以標準化方式記錄結果。 這兩個程式庫都可以幫助開發者提高他們的技能水平。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。