隐藏页面特效

FastAPI系列:jwt认证

jwt认证

1.头部Header,主要是对jwt元数据的描述

{ 'alg': 'HS256', 'typ': 'JWT' }

2.载荷playload,主要包含jwt信息需要传递的主体数据

{ 'iss': 'jack', # 由jwt签发 'sub': 'jack', # 该jwt面向的用户组,也称为主题 'aud': 'jack', # 由谁来接收jwt信息 'iat': 'xxxxxx', # jwt的签发时间 'nbf': 'xxxxxx', # jwt的生效时间 'exp': 'xxxxxx', # jwt的过期时间,unix时间戳 'jti': 'xxxxxx' # jwt的唯一身份标识 }

3.密钥
4.示例

# 推荐使用python-jose pip install python-jose # python-jose的不同加密库 python-jose 默认的方式,使用python-rsapython-ecdsa进行加密和解密 python-jose[cryptography] 使用cryptography加解密库 python-jose[pycryptodome] 使用pycryptodome加解密库 python-jose[pycrypto] 使用pycrypto加解密库 # 使用 from datetime import datetime, timedelta from jose import jwt SECRET_KEY = 'secret' # 可以使用 openssl rand -hex 32 生成 ALGORITHM = 'HS256' ACCESS_TOKEN_EXPIRE_MINUTES = 30 class TokenUtils: @staticmethod def token_encode(data): return jwt.encode(data, SECRET_KEY, algorithm=ALGORITHM) @staticmethod def token_decode(token): return jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM]) data = { 'name': 'admin', 'exp': datetime.utcnow() + timedelta(minutes=5) } if __name__ == '__main__': token = TokenUtils.token_encode(data=data) print(token) playload = TokenUtils.token_decode(token=token) print(playload)

__EOF__

本文作者404 Not Found
本文链接https://www.cnblogs.com/weiweivip666/p/18041467.html
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
posted @   我在路上回头看  阅读(473)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2022-02-28 方法指针或非指针类型接收器
点击右上角即可分享
微信分享提示