石墨烯Django中的授权

时间:2020-05-05 07:51:08

标签: python django graphql authorization

我正在使用Django和GraphQL(graphene django)创建一个API。要验证用户身份,我使用JWT(https://django-graphql-jwt.domake.io/en/latest/)。接下来,我也在使用中继。

现在,处理查询和变异中的权限的最佳方法是什么?假设我有两个模型(ProductsTransactions)。普通用户可以在products上进行查询和更改。 Transactions不过应该受到限制,并且只能由管理员/工作人员访问。

在Graphene Django网页(https://docs.graphene-python.org/projects/django/en/latest/authorization/)上,他们(以及其他人)讨论了以下两个选项:

  1. 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中做类似的事情。

  1. 使用LoginRequiredMixin-这将阻止整个API。我只想阻止API的一部分。

0 个答案:

没有答案