Skip to content
🗂️ 文章分类: Python  
🏷️ 文章标签: Python  
📝 文章创建时间: 2025-12-03
🔥 文章最后更新时间:2025-12-03

[toc]

Python使用 pyjwt 库笔记

JSON Web Tokens(JWT)是一种简洁的、URL安全的机制。它经常被用来在计算机之间传输数据和安全地验证用户。

什么是 pyjwt ?

pyjwt 是一个用于创建、解析和验证JSON Web Tokens(JWT)的Python库。

pyjwt 是Python中用于创建、解析和验证JWT的库,它提供了丰富的功能和灵活性,能够轻松地在Python应用程序中实现JWT的各种功能。

安装

py
# 使用pip安装pyjwt
pip install pyjwt

生成 JWT 令牌

在用户登录时,我们可以生成一个 JWT 并返回给客户端。

通过 jwt.encode() 方法生成 JWT 令牌。

py
import jwt
from datetime import datetime, timedelta
 
# 设置密钥
SECRET_KEY = "your_secret_key"
 
# 创建载荷信息
payload = {
    "user_id": 1,
    "username": "xiaoming",
    "exp": datetime.utcnow() + timedelta(hours=1)  # 令牌过期时间
}
 
# 生成 JWT
token = jwt.encode(payload, SECRET_KEY, algorithm="HS256")
print(token)

验证 JWT 令牌

在服务器端,我们需要验证客户端发送过来的 JWT 令牌。从而确认用户的身份。

通过 jwt.decode() 方法验证 JWT 令牌。

py
import jwt
from datetime import datetime, timedelta
 
# 设置密钥
SECRET_KEY = "your_secret_key"
 
# 要验证的 JWT 令牌
token = "your_jwt_token"
 
try:
    # 验证 JWT 令牌
    decoded_payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"])
    print(decoded_payload)
except jwt.ExpiredSignatureError:
    print("令牌已过期")
except jwt.InvalidTokenError:
    print("无效的令牌")

Released under the MIT License.