CSS*_*Ser 5 python authentication firebase fastapi
我正在按照本教程创建 api 后端。
我使用 firebase 身份验证:
Authorization对于任何需要 auth 的 url,front 在header ( Bearer xxx)中发送令牌本教程展示了如何使用密码执行此操作:
# creating a dependency
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
async def get_current_user(token: str = Depends(oauth2_scheme)):
user = fake_decode_token(token)
return user
Run Code Online (Sandbox Code Playgroud)
但由于我使用的是 firebase,因此无法/token获取带有密码的令牌。
我可以通过创建自定义依赖项来解析令牌,例如:
async def parse_token(auth_token:str = Header(...)):
token = auth_token.split(' ')[1]
return token
async def get_current_user(token: str = Depends(parse_token)):
# check the token with firebase auth
user = auth.verify_id_token(token)
return user
Run Code Online (Sandbox Code Playgroud)
但现在我必须检查所有内容并手动返回异常。
有没有 FastAPI 方法可以做到这一点?
简单地忽略它。
该/token端点用于验证并生成令牌(尝试成功时)。这只是一个登录页面/表单。您只需跳过该部分并使用将执行检查的依赖项即可。
当然,你必须遵循相同的名称和位置的东西OAuth2Password。
请记住,HTTP 是无状态的,并且令牌用于记住用户已经提供了标识。如果您有有效的令牌,您也可以将其交换到另一台机器上并使用它(除非有一些安全 cookie 并且机器相关信息存储在 cookie 中)。
如果您继续阅读链接的教程,您将获得带有身份验证的最终代码。"Authorization: Bearer {token}"只需在从前端到后端的请求中提供 firebase 令牌即可。
下面是文档的链接。
https://fastapi.tiangolo.com/tutorial/security/simple-oauth2/
| 归档时间: |
|
| 查看次数: |
4950 次 |
| 最近记录: |