Python FastAPI的自定义身份验证
如何为fastapi创建自定义身份验证 例如:Python FastAPI的自定义身份验证,python,fastapi,Python,Fastapi,如何为fastapi创建自定义身份验证 例如: 我想用标题{'password':'best password'}提出请求,如果标题中的password key是best password,则只允许对内容进行可见的身份验证,而无需在所有视图中进行更改,并且与通用文档兼容。如果您不关心与swagger前端的奇特集成,您只需创建一个用于验证令牌的依赖项 from fastapi import FastAPI, HTTPException, Depends, Request def
我想用标题{'password':'best password'}提出请求,如果标题中的password key是best password,则只允许对内容进行可见的身份验证,而无需在所有视图中进行更改,并且与通用文档兼容。如果您不关心与swagger前端的奇特集成,您只需创建一个用于验证令牌的依赖项
from fastapi import FastAPI, HTTPException, Depends, Request
def verify_token(req: Request):
token = req.headers["Authorization"]
# Here your code for verifying the token or whatever you use
if token is not valid:
raise HTTPException(
status_code=401,
detail="Unauthorized"
)
return True
@app.post("/auth")
async def login(password: str):
if password == "my_password":
return {"token": password} # Generate your own token
@app.get("/")
async def home(authorized: bool = Depends(verify_token)):
if authorized:
return {"detail": "Welcome home"}
我没有测试代码,但它应该足以让您了解它应该如何工作
如果你想把所有东西都很好地集成到Swigger UI中,请告诉我。因为准备它很长很耗时,如果没有必要,我就不准备了。此外,您还必须遵循swagger的实现,据我从您的问题中了解,这并不完全是您所要求的。如果您不关心与swagger前端的奇特集成,您只需创建一个用于验证令牌的依赖项即可
from fastapi import FastAPI, HTTPException, Depends, Request
def verify_token(req: Request):
token = req.headers["Authorization"]
# Here your code for verifying the token or whatever you use
if token is not valid:
raise HTTPException(
status_code=401,
detail="Unauthorized"
)
return True
@app.post("/auth")
async def login(password: str):
if password == "my_password":
return {"token": password} # Generate your own token
@app.get("/")
async def home(authorized: bool = Depends(verify_token)):
if authorized:
return {"detail": "Welcome home"}
我没有测试代码,但它应该足以让您了解它应该如何工作
如果你想把所有东西都很好地集成到Swigger UI中,请告诉我。因为准备它很长很耗时,如果没有必要,我就不准备了。此外,您还必须遵循swagger的实现,据我从您的问题中了解,这并不完全是您所要求的。我不明白。您需要具有自定义身份验证的API端点。这将显示一个自定义的招摇过市?您介意详细说明您的问题吗?我想用Auth0实现JWT授权。我不想要任何jwt fastapi工具,因为在python库中,auth0就是一切。我有一个检查令牌并将其与auth0 API匹配的函数。我不知道如何在fast API中实现一个简单的方法这是我在fast API中的第一个应用这是我的简单代码。它检查身份验证令牌并将其与外部服务匹配。我不明白。您需要具有自定义身份验证的API端点。这将显示一个自定义的招摇过市?您介意详细说明您的问题吗?我想用Auth0实现JWT授权。我不想要任何jwt fastapi工具,因为在python库中,auth0就是一切。我有一个检查令牌并将其与auth0 API匹配的函数。我不知道如何在fast API中实现一个简单的方法这是我在fast API中的第一个应用这是我的简单代码。它检查身份验证令牌并将其与外部服务匹配@伊莎比+1表示招摇兼容approach@Isabi+1表示招摇兼容的方法