gpt4 book ai didi

flask - Flask-Potion + Flask-Principal锁定用户资源

转载 作者:行者123 更新时间:2023-12-03 17:30:50 27 4
gpt4 key购买 nike

我正在遵循Flask-potion教程并尝试保护我的api。我一直试图找出如何在User端点上设置权限,以使一个User无法查看另一个User的记录。这是我的代码:

class UserResource(PrincipalResource):
class Meta:
model = User
permissions = {
'read': 'id'
}

class ArticleResource(PrincipalResource):
class Schema:
author = fields.ToOne('user')

class Meta:
model = Article
read_only_fields = ['author']
permissions = {
'create': 'editor',
'update': ['user:author', 'admin']
}


我需要自定义权限才能执行此操作吗?看来这将是常见的情况。

最佳答案

Flask-Principals中的所有“需求”都是元组。您编写的UserResource的权限配置{'read': 'id'}与RoleNeed ('role', 'id')匹配。您要匹配('id', user_id)之类的东西。不幸的是,目前尚不支持。

但是,您可以匹配的是ItemNeed,例如('read', user_id, 'user')。要匹配该ItemNeed,请将您的权限配置设置为{'read': 'read'},然后在加载您的身份时,只需添加以下项目权限即可:

identity.provides.add(ItemNeed('read', current_user.id, 'user'))

关于flask - Flask-Potion + Flask-Principal锁定用户资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33924937/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com