我正在使用Django和GraphQL(graphene django)创建一个API。要验证用户身份,我使用JWT(https://django-graphql-jwt.domake.io/en/latest/)。接下来,我也在使用中继。
现在,处理查询和变异中的权限的最佳方法是什么?假设我有两个模型(Products
和Transactions
)。普通用户可以在products
上进行查询和更改。 Transactions
不过应该受到限制,并且只能由管理员/工作人员访问。
在Graphene Django网页(https://docs.graphene-python.org/projects/django/en/latest/authorization/)上,他们(以及其他人)讨论了以下两个选项:
def get_queryset(cls, queryset, info)
-是否可以在此处检查授权(使用:if info.context.user.is_anonymous:
raise GraphQLError('You do not have permission to access this information')
return queryset
)?对于突变,我们可以在mutate_and_get_payload
中做类似的事情。