Python FastAPI:使用firebase令牌的安全性

Python FastAPI:使用firebase令牌的安全性,python,firebase,authentication,fastapi,Python,Firebase,Authentication,Fastapi,下面我将创建一个api后端 我使用firebase身份验证: 用户在前端输入电子邮件和密码 front将信息发送到firebase firebase身份验证用户和返回令牌 前台存储令牌 对于任何需要身份验证的url,front在授权头中发送令牌(承载xxx) 服务器端firebase检查令牌 本教程介绍了如何使用密码执行此操作: #创建依赖项 oauth2_scheme=OAuth2PasswordBearer(tokenUrl=“token”) 异步def get_当前_用户(令牌:

下面我将创建一个api后端

我使用firebase身份验证:

  • 用户在前端输入电子邮件和密码
    • front将信息发送到firebase
    • firebase身份验证用户和返回令牌
    • 前台存储令牌
  • 对于任何需要身份验证的url,front在
    授权
    头中发送令牌(
    承载xxx
  • 服务器端firebase检查令牌
本教程介绍了如何使用密码执行此操作:

#创建依赖项
oauth2_scheme=OAuth2PasswordBearer(tokenUrl=“token”)
异步def get_当前_用户(令牌:str=Depends(oauth2_方案)):
用户=伪解码令牌(令牌)
返回用户
但由于我使用的是firebase,因此没有
/token
用于获取带有密码的令牌

我可以通过创建自定义依赖项来解析令牌,如:

async def parse_令牌(auth_令牌:str=Header(…):
token=auth_token.split(“”)[1]
返回令牌
异步定义获取当前用户(令牌:str=Depends(解析令牌)):
#使用firebase auth检查令牌
user=auth.verify\u id\u令牌(令牌)
返回用户
但现在我必须检查所有内容并手动返回异常

有没有FastAPI方法可以做到这一点?

简单地忽略它

/token
端点用于验证和生成令牌(在成功尝试时)。这只是一个登录页面/表单。您只需跳过该部分并使用将执行检查的依赖项

当然,您必须遵循与
OAuth2Password
相同的名称和位置

记住,HTTP是无状态的,令牌用于记住用户已经提供了标识。如果您有一个有效的令牌,您也可以在另一台机器上交换它并使用它(除非有一些安全cookie,并且cookie中存储了与机器相关的信息)

如果继续阅读链接的教程,您将获得带有身份验证的最终代码。只需在从前端到后端的请求的
“Authorization:Bearer{token}”
中提供firebase令牌即可

下面是文档的链接


Hey@junming wang,我正在尝试实现类似的东西,使用Firebase进行身份验证,使用FastApi进行端点验证,你是否已经成功了?如果得到实施,我希望听到正确的方法