password
查看人数
type
status
date
slug
summary
category
icon
tags
作者
状态
在 FastAPI 中实现 JWT(JSON Web Token)的加密和解密通常涉及以下几个步骤:
- 安装依赖:首先,你需要安装 PyJWT库来处理 JWT 的编码和解码。
- 创建 JWT 工具函数:你可以创建一些工具函数来生成和验证 JWT。
- 在 FastAPI 中使用 JWT:你可以在 FastAPI 的路由中使用这些工具函数来处理
- 运行 FastAPI 应用:你可以使用 uvicorn来运行你的 FastAPI 应用。
解释
- create_jwt_token:这个函数用于生成 JWT。它接受一个字典- data作为输入,并可以指定一个过期时间- expires_delta。JWT 会包含一个- exp字段,表示令牌的过期时间。
- verify_jwt_token:这个函数用于验证 JWT。如果令牌有效且未过期,它会返回解码后的 payload。如果令牌无效或已过期,它会抛出相应的异常。
- /token路由:这个路由用于用户登录并生成 JWT。它接受用户名和密码,验证用户信息,并生成一个 JWT。
- /protected路由:这个路由是受保护的,只有携带有效 JWT 的请求才能访问。它使用- OAuth2PasswordBearer来自动提取并验证 JWT。
注意事项
- 密钥管理:在实际应用中,密钥 (SECRET_KEY) 应该妥善保管,不要硬编码在代码中。可以使用环境变量或密钥管理服务来管理密钥。
- 安全性:JWT 的安全性依赖于密钥的保密性。确保使用强密钥,并定期轮换密钥。
- 令牌过期:JWT 应该设置合理的过期时间,以防止令牌被长期滥用。
| dependencies=[Depends(verify_jwt_token)]在APIRouter里 | 只作用于该  router的所有接口 | 只需改  router = APIRouter(...) | 
| dependencies=[Depends(verify_jwt_token)]在FastAPI里 | 全局所有接口都会验证 | 只需在  FastAPI()里加依赖 | 
| 在每个  API手动verify_jwt_token(token) | 仅作用于某些 API | 需要每个 API 手动加代码 | 
有关使用上的问题,欢迎您在底部评论区留言,一起交流~
- 作者:躁静有徒
- 链接:https://blog.zaojingyoutu.top//article/4c21ebfd-c1e5-49a9-a0d1-d5127b787feb
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章