FastAPI - 安全(Security)4

删除routers/member.py文件

修改main.py文件

复制代码
# -*- coding:utf-8 --*-
from fastapi import Depends,FastAPI

from fastapi.security import OAuth2PasswordBearer
from typing import Annotated

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

app = FastAPI(
    title="文档标题",
    description="关于API文档的补充说明",
    version="1.0.0",
    docs_url="/docs"
)


@app.get("/items/")
async def read_items(token: Annotated[str, Depends(oauth2_scheme)]):
    return {"token": token}

https://fastapi.tiangolo.com/zh/tutorial/security/first-steps

创建用户模型

修改main.py文件

复制代码
# -*- coding:utf-8 --*-
from fastapi import Depends, FastAPI

from fastapi.security import OAuth2PasswordBearer
from typing import Annotated
from pydantic import BaseModel

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")


class User(BaseModel):
    username: str
    email: str | None = None
    full_name: str | None = None
    disabled: bool | None = None


def fake_decode_token(token):
    return User(
        username=token + "fakedecoded", email="vvv@example.com", full_name="vvv lao"
    )


async def get_current_user(token: Annotated[str, Depends(oauth2_scheme)]):
    user = fake_decode_token(token)
    return user

app = FastAPI(
    title="文档标题",
    description="关于API文档的补充说明",
    version="1.0.0",
    docs_url="/docs"
)


@app.get("/users/me")
async def read_users_me(current_user: Annotated[User, Depends(get_current_user)]):
    return current_user

其中get_current_user使用oauth2_scheme作为依赖项

https://fastapi.tiangolo.com/zh/tutorial/security/simple-oauth2

相关推荐
祁思妙想8 小时前
Python中的FastAPI框架的设计特点和性能优势
开发语言·python·fastapi
Swizard13 小时前
告别“意大利面条”:FastAPI 生产级架构的最佳实践指南
python·fastapi
曲幽1 天前
FastAPI入门:从简介到实战,对比Flask帮你选对框架
python·flask·fastapi·web·route·uv·uvicorn·docs
龙腾AI白云1 天前
基于Tensorflow库的RNN模型预测实战Tensorflow库简介循环神经网络简介
人工智能·fastapi
写文章的大米2 天前
10分钟用Python搭个接口,还能自动生成文档?
python·fastapi
weixin_462446233 天前
【实践原创】使用 FastAPI 实现 Coze 流式聊天 SSE 接口
fastapi·扣子mcp
吴佳浩 Alben3 天前
Python入门指南(五) - 为什么选择 FastAPI?
开发语言·python·fastapi
kkoral3 天前
基于MS-Swift 为 Qwen3-0.6B-Base 模型搭建可直接调用的 API 服务
python·conda·fastapi·swift
AIOps打工人3 天前
Grafana Query MCP:基于FastAPI的Grafana查询转换与分页服务
运维·数据库·python·ai·grafana·fastapi·devops
吴佳浩3 天前
Python入门指南(五) - 为什么选择 FastAPI?
后端·python·fastapi