PYTHON 幫助

PyJWT Python(它如何運作:開發者指南)

介紹

在 Python 函式庫中,**[PyJWT**](https://pypi.org/project/PyJWT/) 是最受歡迎的 Python 函式庫,提供了一種方便的方式用於在 Python 專案中編碼和解碼 JSON Web Tokens (JWTs)。 JWT 是一種緊湊的、URL 安全的方式,用於表示在兩方之間傳輸的聲明。 pyjwt 套件簡化了在 Python 中的 JSON web token 實作。 JWT 令牌廣泛用於網路應用程式中的身份驗證和資訊交換。 該套件在線上提供豐富的文件以支持開發人員。 在本文中,我們還將了解來自IronSoftwareIronPDF以便稍後生成PDF文件。

主要功能

  1. JWT 編碼和解碼:PyJWT 讓您輕鬆編碼和解碼 JWT。 您可以通過使用密鑰和算法對有效載荷進行編碼來創建令牌,然後稍後解碼以驗證有效載荷。

  2. 支援多種演算法:PyJWT 支援多種用於簽署代幣的演算法,包括 HMAC (HS256, HS384, HS512) 和 RSA (RS256, RS384, RS512)。 它支援對稱演算法和非對稱演算法。

  3. Claims Validation:此函式庫提供內建支援,用於驗證標準聲明,如 is(發行者)、sub(主體)、aud(受眾)及 exp(過期時間),例如安全的基於令牌的身份驗證。

安裝

要安裝PyJWT,您可以使用 pip:

pip install pyjwt
py
PYTHON

要獲得額外的加密支持,您可以使用 crypto 選項進行安裝:

pip install pyjwt[crypto]
py
PYTHON

基本用法

以下是一個使用PyJWT Python 實作的簡單範例:

import jwt
# Encoding a JWT
payload = {"Message": "IronPDF is Awesome PDF library"}
secret = "your-256-bit-secret"
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)
# Decoding a JWT
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)
py
PYTHON

在此示例中,我們透過使用 HS256 算法和一個密鑰編碼負載來建立 JWT。 然後我們解碼該 token 以檢索原始負載。

輸出

PyJWT Python (運作方式:開發人員指南): 圖1 - 解碼後的範例回應有效負載

使用案例

  1. 身份驗證:JWT通常用於網路應用程式的身份驗證。 用戶登錄後,伺服器會生成一個 JWT 並返回簽名的 token 給客戶端。 客戶可以使用此令牌驗證用戶身份,並在後續請求中包含該令牌。

  2. 信息交換:各方可以使用 JWTs 安全傳遞信息。 有效負載可以包含任何數據; 令牌的簽名確保了其完整性。

介紹 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 標準,例如 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 庫:

pip install ironpdf
pip install pyjwt
py
PYTHON

然後添加以下代碼以演示 IronPDF 和 PyJWT Python 套件的用法

import jwt
from ironpdf import * 
# Apply your license key
License.LicenseKey = "your key"
# Create a PDF from a HTML string using Python
content = "<h1>Awesome IronPDF with PyJWT</h1>"
content += "<h2> Encoding a JWT</h2>"
# Encoding a JWT
payload = {"Message": "IronPDF is Awesome PDF library"}
secret = "your-256-bit-secret" # private key
token = jwt.encode(payload, secret, algorithm="HS256")
print(token) # public key
content += "<p>Message:IronPDF is Awesome PDF library</p>"
content += "<p>secret:your-256-bit-secret</p>" 
content += "<p>Generated Token:"+str(token)+"</p>"
# Decoding a JWT
content += "<h2> Decoding a JWT</h2>"
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)
content += "<p>jwt.decode(token, secret, algorithms=[HS256]</p>"
content += "<p>Decoded Token:"+str(decoded_payload)+"</p>"
#Generate PDF using IronPDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(content)
    # Export to a file or Stream
pdf.SaveAs("Demo-pyjwt.pdf")
py
PYTHON

程式碼說明

這段代碼片段演示了如何使用jwt(JSON Web Token)庫以及IronPDF來創建一個包含JWT編碼和解碼範例的PDF文件。

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

  1. 匯入和授權金鑰設置

    導入`jwt`庫以實現 JSON Web Token 功能,並從 IronPDF 導入`ChromePdfRenderer`用於 PDF 生成。

    設置IronPDF的許可證密鑰以啟用其功能。2. HTML內容設置

    初始化 `content` 變數,包含將包含在 PDF 文件中的 HTML 標記。3. 編碼 JWT

    定義一個有效載荷字典,包含要編碼進入 JWT 的數據(`payload`)。 指定一個密鑰(`secret`),用於使用 SHA-256 (`HS256`)的 HMAC 演算法對 JWT 進行簽名。 使用`jwt.encode()`函數生成一個JWT令牌並列印出來。4. 解碼JWT

    添加 HTML 標記以示範 JWT 解碼。 使用 `jwt.decode()` 函數,使用相同的密鑰和編碼算法解碼之前生成的 JWT (`token`)。5. PDF 生成

    它使用 ChromePdfRenderer 將 `content` 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 package之前:

from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
py
PYTHON

結論

PyJWT是一個強大且靈活的資料庫,用於在Python中處理JSON Web Tokens。 它易於使用且支持各種演算法,使其成為在網頁應用程式中實現基於令牌的驗證和安全資訊交換的熱門選擇。 另一方面,IronPDF 是一個多功能且功能豐富的 PDF 生成庫,可以以標準方式幫助記錄結果。 這兩個函式庫都可以為開發人員帶來奇蹟,提升他們的技能。

查克尼思·賓
軟體工程師
Chaknith 致力於 IronXL 和 IronBarcode。他在 C# 和 .NET 方面擁有豐富的專業知識,協助改進軟體並支持客戶。他從用戶互動中獲得的洞察力有助於提高產品、文檔和整體體驗。
< 上一頁
Stellargraph Python(開發人員如何運作)
下一個 >
HTTPX Python(運作原理:開發者指南)

準備開始了嗎? 版本: 2025.5 剛剛發布

查看許可證 >