python:Fastapi - 安全性-OAuth2中的password流

本文介绍了如何在FastAPI中使用OAuth2的password流处理安全性,涉及身份验证和授权概念。通过逐步解析代码,展示了如何定义用户数据、验证密码以及实现登录接口。文章还提到了后续将探讨的哈希加密方法,旨在帮助读者理解FastAPI的安全机制。
摘要由CSDN通过智能技术生成

简单絮叨一些

前面一篇文章唠了依赖项,今天主要唠下安全性。

更多的就是身份认证或者授权等问题,一听这词就感觉很复杂,fastapi提供了专门处理安全性的工具



安全性


使用密码和 Bearer 的简单 OAuth2

此处使用的是OAuth2中的password

password流OAuth2 中定义的一种方式(),用于处理安全和身份验证。

OAuth2 指在使后端或 API 可以独立于对用户进行身份验证的服务器。


鉴于这个鬼玩意比较生疏,针对代码一段一段且一步一步的唠:

  1. fake_users_db是定义了一个字典,就可以直接理解为是伪数据库,因为这些后期都是从数据库获取的
fake_users_db = {
    "johndoe": {
        "username": "johndoe",
        "full_name": "John Doe",
        "email": "johndoe@example.com",
        "hashed_password": "fakehashedsecret",
        "disabled": False,
    },
    "alice": {
        "username": "alice",
        "full_name": "Alice Wonderson",
        "email": "alice@example.com",
        "hashed_password": "fakehashedsecret2",
        "disabled": True,
    },
}

  1. 这个就是new一个对象,不再多叙述
app = FastAPI()

  1. fake_hash_password(password: str):函数实际功能就是获取到字符串,然后进行拼接后再返回
def fake_hash_password(password: str):
    return "fakehashed" + password

  1. oauth2_scheme=OAuth2PasswordBearer(tokenUrl="token")就是new一个对象。而OAuth2PasswordBearer类是继承OAuth2规范的密码流获取令牌
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

  1. 创建的模型,它是继承基类BaseModel
class User(BaseModel):
    username: str
    email: Optional[str] = None
    full_name: Optional[str] = None
    disabled: Optional[bool] = None

  1. 创建的模型,区别就是它继承的是User
class UserInDB(User):
    hashed_password: str
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值