跳至頁尾內容
PYTHON 幫助

PyJWT Python(開發者指南)

在 Python 程式庫中,PyJWT 是最受歡迎的 Python 庫,它為在 Python 專案中編碼和解碼 JSON Web Tokens (JWTs) 提供了一種方便的方法。 JWT 是一種緊湊且 URL 安全的方式來表示在兩方之間傳輸的聲明。 PyJWT 套件簡化了在 Python 中的 JSON 網頁令牌實作。 JWT 令牌在網路應用中廣泛用於身份驗證和資訊交換。 該套件在網路上有豐富的文件來支持開發者。 在本文中,我們還將探討來自 Iron SoftwareIronPDF,以便後續生成 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 是一個功能強大的 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渲染器從IronPDF將網頁渲染為PDF

跨平台支援

IronPDF設計用於Python 3+版,可在Windows、Mac、Linux或雲平台上執行。

IronPDF is also available in .NET, Java, Python, and Node.js.

編輯和簽署

使用者可以設置屬性、通過密碼和權限新增安全性,並使用 IronPDF 對 PDF 應用數位簽名。

頁面模板和設置

IronPDF允許您自訂PDF文件,包含頁首、頁尾、頁碼和可調邊界。 它也支持響應式佈局和自訂紙張大小。

標準合規

IronPDF 套件遵循 PDF 標準,如 PDF/A 和 PDF/UA。 它支持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程式庫:

:ProductInstall pip install ironpdf pyjwt
:ProductInstall pip install ironpdf 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 一起建立一個包含JWTs編碼和解碼範例的 PDF 文件。

以下是每個程式碼組件功能的概述:

  1. 導入和授權金鑰設置:

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

  1. HTML 內容設置:

初始化 content 變數,將 HTML 標記包含在 PDF 檔案中,展示該流程中的不同步驟。

  1. 編碼 JWT:
  • 定義一個包含要編碼為 JWT 的資料的有效載荷字典 (payload)。 指定一個密鑰 (secret),用於使用 SHA-256 的 HMAC 演算法簽署 JWT (HS256)。
  • 使用 jwt.encode() 函式生成 JWT 令牌並列印出來。
  1. 解碼 JWT:
  • 新增HTML標記以展示 JWT 解碼。
  • 使用 與編碼時相同的暗碼和演算法來解碼先前生成的 JWT (token),使用 jwt.decode() 函式。
  1. PDF 生成:

它使用 ChromePdfRenderercontent HTML 字串渲染為 PDF 檔案,並將生成的 PDF 檔案儲存為 'Demo-pyjwt.pdf'。

此設置允許建立一個 PDF 文件,展示使用 JWTs 和 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。 由於使用簡單,並支持多種演算法,它成為實作基於令牌的身份驗證和安全資訊交換的熱門選擇。 另一方面,IronPDF 是一個多功能且特性豐富的 PDF 生成庫,將以標準方式幫助記錄結果。 這兩個程式庫都可以為開發者提升技能而創造奇蹟。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話