PYTHON帮助

PyJWT Python(工作原理:开发者指南)

乔尔迪·巴尔迪亚
乔尔迪·巴尔迪亚
2025年二月26日
分享:

介绍

在 Python 库中PyJWT是最受欢迎的Python库,提供了一种方便的方法来编码和解码JSON Web令牌(JWTs)在 Python 项目中。 JWT 是一种紧凑且 URL 安全的方式,用于表示在两方之间传输的声明。 pyjwt 包简化了 Python 中 JSON Web 令牌的实现。 JWT 令牌广泛用于 Web 应用中的身份验证和信息交换。 该软件包在线提供丰富的文档以支持开发人员。 在本文中,我们还将探讨IronPDF铁软件(Iron Software)稍后生成PDF文档。

主要功能

  1. JWT 编码和解码:PyJWT 让您可以轻松地编码和解码 JWT。 您可以通过使用密钥和算法对有效载荷进行编码来创建令牌,然后解码它以验证有效载荷。

  2. 支持多种算法:PyJWT 支持用于签名令牌的多种算法,包括 HMAC(HS256, HS384, HS512)和 RSA(RS256,RS384,RS512). 它支持对称算法和非对称算法。

  3. 声明验证:该库提供内置支持,用于验证标准声明,如是(发行者), 子(主题), aud(受众),和 exp(到期时间)例如基于令牌的安全验证。

安装

安装PyJWT您可以使用 pip:

pip install pyjwt
PYTHON

要获得额外的加密支持,您可以使用加密选项进行安装:

pip install pyjwt[crypto]
PYTHON

基本用法

以下是如何使用的简单示例PyJWTPython 实现:

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)
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。 例如将网页呈现为PDF使用IronPDF的Chrome 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.NET6.0》使用 .NET 6.0 作为底层技术。 因此,请确保.NET 6.0 运行时已安装在您的系统上。

  2. Python 3.0+:您需要安装 Python 3 或更高版本。

  3. Pip:安装 Python 包管理工具pip安装 IronPDF 软件包。

    首先,让我们在项目根目录创建一个 Python 文件来添加我们的脚本。在这个例子中,我们使用Visual Studio 代码作为代码编辑器。

    打开 Visual Studio Code 并创建一个文件,pyjwtDemo.py。

    安装IronPDF库:

pip install ironpdf
pip install pyjwt
PYTHON

然后添加下面的代码来演示IronPDF的使用PyJWTPython 包

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")
PYTHON

代码解释

此代码片段演示了如何使用`jwt`(JSON Web令牌)与IronPDF一起使用库以创建包含编码和解码JWT示例的PDF文档。

以下是每个代码组件功能的概述:

  1. 导入和许可证密钥设置

    导入 jwt 库以实现 JSON Web Token 功能,并从 IronPDF 导入 ChromePdfRenderer 以生成 PDF。

    设置IronPDF的许可证密钥以启用其功能。2. HTML内容设置

    初始化 `content` 变量,其中包含要包含在 PDF 文档中的 HTML 标记。3. 编码 JWT

    定义一个有效负载字典,其中包含要编码到JWT中的数据(有效负载). 指定一个密钥(秘密)使用 SHA-256 的 HMAC 算法签署 JWT(`HS256`). 使用 `jwt.encode` 生成 JWT 令牌()` 函数并打印它。4. 解码 JWT

    添加HTML标记以演示JWT解码。 解码之前生成的JWT(令牌)使用 `jwt.decode()使用相同的秘密和用于编码的算法的函数。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 软件包:

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

结论

PyJWT 是一个强大且灵活的库,用于在 Python 中处理 JSON Web Tokens。 由于其易用性和对多种算法的支持,它成为在网络应用中实现基于令牌的身份验证和安全信息交换的热门选择。 另一方面,IronPDF 是一个多功能且功能丰富的 PDF 生成库,可以帮助以标准方式记录结果。 这两个库都能为开发人员提高技能创造奇迹。

乔尔迪·巴尔迪亚
乔尔迪·巴尔迪亚
软件工程师
Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 运用技能时,他会进行游戏编程。作为产品测试、产品开发和研究的负责人之一,Jordi 为持续的产品改进增添了极大的价值。多样化的经验让他充满挑战和参与感,他说这是他在 Iron Software 工作中最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。
下一步 >
HTTPX Python(如何运作:开发者指南)

准备开始了吗? 版本: 2025.3 刚刚发布

查看许可证 >