1

所以我对烧瓶只有几个星期才比较陌生。为了更多地学习烧瓶,我为自己设定了一个目标,那就是构建自己的 api。

API的用例:

  1. 经过身份验证的用户应该能够访问端点
    www.mydomain.com/api/并执行以下活动(仅限于他们的
    任务)

    • 增加计数(POST/PUT)
    • 减少计数(删除)
    • 重置计数
  2. 未经身份验证的用户应该能够访问www.mydomain.com/api/john并查看 John 的指标。我希望有很多用户都有自己的指标

当前状态:

我可以执行、发布、获取、放置和删除操作(尚未设置身份验证...)

我的问题:

有没有办法根据用户 ID 限制用户。我的意思是 john 只能访问对www.mydomain.com/api/john执行请求。

4

1 回答 1

0

有几种方法可以处理这个问题,这一切都取决于您的要求。

您可以构建自己的(这通常是我所做的),或者您可以使用Flask-User支持的基于角色的授权。

您可以在此处阅读有关其工作原理的更多信息。

确保查看他们的示例应用程序以了解如何将它们组合在一起。

如果您有自己的自定义权限,这将基于用户 ID。然后您可以遵循相同的概念,但根据用户 ID 与角色进行处理。甚至可能将权限级别存储在用户对象(is_admin、is_general_user 等)中,例如像这样(伪代码):

class User:
   is_admin = false
   is_read_only = false

   def __init__(**kwargs):
       # handle kwargs to set permissions

然后,您可以User在某些继承的基础工厂或其他东西(伪代码)中定义用户后访问您的变量:

u = User(**my_permissions)

if(u.is_admin):
    # do something
于 2020-12-30T18:26:10.757 回答