[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("无效的令牌")