我目前正在开发一个flask API,它使用flask-jwt-extended来保护端点。我的jwt required decorator工作正常,但我想添加角色来对访问进行更细粒度的控制。在我的想象中,最好有三个表Users,Roles和UserRoles。UserRoles将使用foreign id将用户Map到角色,然后使用自定义decorator来检查每个端点。
我从来没有这样做过,你会如何实现这一点,为什么?
我目前正在开发一个flask API,它使用flask-jwt-extended来保护端点。我的jwt required decorator工作正常,但我想添加角色来对访问进行更细粒度的控制。在我的想象中,最好有三个表Users,Roles和UserRoles。UserRoles将使用foreign id将用户Map到角色,然后使用自定义decorator来检查每个端点。
我从来没有这样做过,你会如何实现这一点,为什么?
2条答案
按热度按时间qaxu7uf21#
根据docs,应该可以使用自定义装饰器,如下所示:
字符串
只需确保保存角色信息using additional claims。
polhcujo2#
正如你所建议的,有一些基本的表和方法+装饰器是正确的方法。
你也可以看看这是如何在Flask-Security中实现的(或者在Flask-Security中使用的Flask-Login和Flask-Principal包中)。它可以给你给予一些关于你想要什么样的函数的建议。