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-rsa和python-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
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
本文链接:https://www.cnblogs.com/weiweivip666/p/18041467.html
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
-------------------------------------------
个性签名:代码过万,键盘敲烂!!!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2022-02-28 方法指针或非指针类型接收器