Flask框架中基于header的请求验证
Request validation based on header in Flask framework
我有几个用 Flask 构建的端点。
一些端点应该只批准某些特定用户 ID 的请求。
假设我有:
- This endpoint: company//videos 获取该公司的所有视频。
- A header 包含发出 GET 请求的用户的用户 ID。
- 一个 mongo collection 包含所有用户 ID 和该用户可以访问的相应公司。
使用 Flask 检查请求是否可以在给定相应 header 的情况下获得批准的最佳方法是什么?
编辑:当我们将 ORM 与用户 table 一起使用时,虽然有一些很好的 Flask 装饰器可以处理它,例如此处:https://pypi.org/project/Flask-Authorize/,但就我而言,我我没有使用任何 ORM
如果我是你,我会构建一个自定义装饰器来控制这种权限。
流程如下所示:
- 拦截传入请求
- 找出请求的用户 ID
- 向您的 mongo 发送查询(如果未使用 ttl 进行缓存,例如 10 秒)以检索允许的用户 ID 列表
- 进行检查并允许或禁止使用端点
让我知道这对您的用例来说是否切合实际,或者如果您有任何问题。
我有几个用 Flask 构建的端点。 一些端点应该只批准某些特定用户 ID 的请求。
假设我有:
- This endpoint: company//videos 获取该公司的所有视频。
- A header 包含发出 GET 请求的用户的用户 ID。
- 一个 mongo collection 包含所有用户 ID 和该用户可以访问的相应公司。
使用 Flask 检查请求是否可以在给定相应 header 的情况下获得批准的最佳方法是什么?
编辑:当我们将 ORM 与用户 table 一起使用时,虽然有一些很好的 Flask 装饰器可以处理它,例如此处:https://pypi.org/project/Flask-Authorize/,但就我而言,我我没有使用任何 ORM
如果我是你,我会构建一个自定义装饰器来控制这种权限。
流程如下所示:
- 拦截传入请求
- 找出请求的用户 ID
- 向您的 mongo 发送查询(如果未使用 ttl 进行缓存,例如 10 秒)以检索允许的用户 ID 列表
- 进行检查并允许或禁止使用端点
让我知道这对您的用例来说是否切合实际,或者如果您有任何问题。