跳過到頁腳內容
PYTHON 幫助

PyJWT Python(開發者指南)

在 Python 函式庫中, PyJWT是最受歡迎的 Python 函式庫,它提供了一種在 Python 專案中對 JSON Web Tokens (JWT) 進行編碼和解碼的便捷方法。 JWT 是一種緊湊、URL 安全的方式,用於表示要在雙方之間傳輸的聲明。 PyJWT 套件簡化了 Python 中 JSON Web Token 的實作。 JWT令牌廣泛用於Web應用程式中的身份驗證和資訊交換。 該軟體包擁有豐富的線上文檔,可為開發人員提供支援。 本文中,我們也將介紹IronSoftware公司的IronPDF ,以便稍後產生 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 通常用於 Web 應用程式中的身份驗證。 使用者登入後,伺服器產生 JWT 並將簽名令牌傳回給客戶端。 客戶端可以使用此令牌驗證使用者身份,並將該令牌包含在後續請求中。 2.資訊交換:各方可以使用 JWT 安全地傳輸訊息。 有效載荷可以包含任何數據; 令牌的簽名確保其完整性。

介紹 IronPDF。

PyJWT Python(工作原理:開發者指南):圖 2 - IronPDF for Python:Python PDF 庫

IronPDF是一個功能強大的 Python 庫,它使用 HTML、CSS、圖像和 JavaScript 來建立、編輯和簽署 PDF 文件。 它在佔用記憶體極少的情況下,提供了高品質的效能。 使用者可以從 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 也提供.NETJavaPythonNode.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 的許可證密鑰以啟用其功能。

  1. HTML 內容設定

    使用 HTML 標記初始化content變量,以便將其包含在 PDF 文件中,並說明該過程中的不同步驟。

3.對 JWT 進行編碼

  • 定義一個有效載荷字典,其中包含要編碼到 JWT( payload )中的資料。
  • 指定一個用於使用 SHA-256 ( HS256 ) 的 HMAC 演算法對 JWT 進行簽署的金鑰 ( secret )。
  • 使用jwt.encode()函數產生 JWT 令牌並列印出來。

4.解碼 JWT

  • 新增 HTML 標記以示範 JWT 解碼。
  • 使用jwt.decode()函數,以與編碼時相同的金鑰和演算法解碼先前產生的 JWT( token )。
  1. PDF 生成

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

此設定允許建立 PDF 文檔,展示如何使用 JWT 和 IronPDF 產生專業品質的 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 Tokens。 由於其易用性和對各種演算法的支持,它成為在 Web 應用程式中實現基於令牌的身份驗證和安全資訊交換的熱門選擇。 另一方面,IronPDF 是一個功能豐富且用途廣泛的 PDF 生成庫,它可以幫助以標準的方式記錄結果。 這兩個函式庫都能大大幫助開發者提陞技能。

Curtis Chau
技術作家

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

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