Если вы хотите ограничить конечную точку API GraphQL для пользователей, вошедших в Django, вы можете сделать это, расширив GraphQLView с помощью LoginRequiredMixin
from django.contrib.auth.mixins import LoginRequiredMixin
from graphene_django.views import GraphQLView
class PrivateGraphQLView(LoginRequiredMixin, GraphQLView):
"""Adds a login requirement to graphQL API access via main endpoint."""
pass
, а затем добавить этот вид к вашему urls.py
как
path('api/', PrivateGraphQLView.as_view(schema=schema), name='api')
обычным способом согласно документам .
Если вы не защищаете весь свой API, вы можете создать другую схему и конечную точку для незащищенных запросов и мутаций, что позволяет четко разделить каждый из них. Например, в urls.py:
path('public_api/', GraphQLView.as_view(schema=public_schema), name='public_api')
Обратите внимание, что для работы каждой конечной точки API должен быть хотя бы один запрос, иначе это вызовет ошибку подтверждения.