JWT(JSON Web Token)是一种常用于身份验证和信息传递的开放标准协议。在Python中,开发者可以通过多种库实现JWT的生成与解析,以下是核心内容:
安装依赖
pip install pyjwt
或使用更全面的库:
pip install python-jwt
基本用法
生成Token
import jwt import datetime payload = { "user": "example", "exp": datetime.datetime.utcnow() + datetime.timedelta(hours=1) } token = jwt.encode(payload, "secret_key", algorithm="HS256")
解析Token
decoded = jwt.decode(token, "secret_key", algorithms=["HS256"]) print(decoded["user"])
验证签名
try: jwt.decode(token, "wrong_key", algorithms=["HS256"]) except jwt.InvalidSignatureError: print("签名验证失败")
安全最佳实践
- 始终使用 HTTPS 传输 Token
- 建议设置合理的过期时间(
exp
字段) - 签名密钥需严格保密,推荐使用环境变量存储
- 可参考 JWT安全指南 深入了解防护措施
常见问题
Q: 如何处理 Token 过期?
A: 在解码时检查exp
字段,或使用 JWT续签方案 的扩展文档Q: 支持哪些加密算法?
A: 常见算法包括 HS256、RS256 等,具体可查阅 加密算法详解 文档
如需进一步学习,可访问 JWT在Python中的完整教程 获取详细示例。