Авторизация в Graphene Django - PullRequest
1 голос
/ 05 мая 2020

Я создаю API, используя Django и GraphQL (graphene django). Для аутентификации пользователей я использую JWT (https://django-graphql-jwt.domake.io/en/latest/). Затем я также использую Relay.

Теперь, как лучше всего обрабатывать разрешения в запросах и изменениях? Допустим, у меня две модели (Products и Transactions). Обычные пользователи могут выполнять как запросы, так и изменять products. Однако Transactions должен быть ограничен и доступен только администраторам / персоналу.

На веб-страницах Graphene Django (https://docs.graphene-python.org/projects/django/en/latest/authorization/) они (среди прочего) обсуждают следующие два варианта:

  1. def get_queryset(cls, queryset, info) - Is Можно ли здесь проверить авторизацию (используя:
if info.context.user.is_anonymous:
    raise GraphQLError('You do not have permission to access this information')
return queryset

)? А для мутаций мы могли бы сделать то же самое в mutate_and_get_payload.

использовать LoginRequiredMixin - это блокирует весь API. Я хочу заблокировать только части API.
...