FastAPI JWT Auth 项目教程

FastAPI JWT Auth 项目教程

fastapi-jwt-authFastAPI extension that provides JWT Auth support (secure, easy to use, and lightweight) 项目地址:https://gitcode.com/gh_mirrors/fa/fastapi-jwt-auth

项目介绍

FastAPI JWT Auth 是一个为 FastAPI 框架提供 JWT(JSON Web Token)认证支持的扩展。它旨在提供一个安全、易于使用且轻量级的认证解决方案。如果你熟悉 Flask-JWT-Extended,你会发现这个扩展非常适合你,因为它受到了 Flask-JWT-Extended 的启发。

项目快速启动

安装

首先,你需要安装 FastAPI JWT Auth 扩展。你可以使用 pip 进行安装:

pip install fastapi-jwt-auth

基本使用

以下是一个简单的示例,展示如何在 FastAPI 应用中使用 FastAPI JWT Auth:

from fastapi import FastAPI, Depends, HTTPException
from fastapi_jwt_auth import AuthJWT
from fastapi_jwt_auth.exceptions import AuthJWTException
from pydantic import BaseModel

app = FastAPI()

class User(BaseModel):
    username: str
    password: str

# 配置 JWT
@AuthJWT.load_config
def get_config():
    return [
        ("authjwt_secret_key", "secret"),
    ]

# 模拟用户数据库
users_db = {
    "testuser": "testpass"
}

# 登录接口
@app.post('/login')
def login(user: User, Authorize: AuthJWT = Depends()):
    if user.username in users_db and users_db[user.username] == user.password:
        access_token = Authorize.create_access_token(subject=user.username)
        return {"access_token": access_token}
    else:
        raise HTTPException(status_code=401, detail="Bad username or password")

# 受保护的接口
@app.get('/protected')
def protected(Authorize: AuthJWT = Depends()):
    Authorize.jwt_required()
    current_user = Authorize.get_jwt_subject()
    return {"logged_in_as": current_user}

应用案例和最佳实践

应用案例

FastAPI JWT Auth 可以用于各种需要用户认证的场景,例如:

  • 用户登录系统
  • API 访问控制
  • WebSocket 授权

最佳实践

  • 安全存储密钥:确保你的 JWT 密钥安全存储,不要硬编码在代码中。
  • 设置合理的过期时间:为访问令牌和刷新令牌设置合理的过期时间,以平衡安全性和用户体验。
  • 使用 HTTPS:确保所有与认证相关的通信都通过 HTTPS 进行。

典型生态项目

FastAPI JWT Auth 可以与其他 FastAPI 生态项目结合使用,例如:

  • FastAPI Users:一个用于用户管理、认证和授权的库。
  • FastAPI SQLAlchemy:一个用于与 SQLAlchemy 集成的库,方便进行数据库操作。
  • FastAPI Mail:一个用于发送电子邮件的库,可以用于发送验证邮件等。

通过这些生态项目的结合,你可以构建一个功能完善、安全可靠的 FastAPI 应用。

fastapi-jwt-authFastAPI extension that provides JWT Auth support (secure, easy to use, and lightweight) 项目地址:https://gitcode.com/gh_mirrors/fa/fastapi-jwt-auth

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平荔允Imogene

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值