-
例如,如果
authentication_classes = (TokenAuthentication,)
在API视图中使用,则可以将端点添加到以这种方式装饰的GraphQLView中:urls.py:
# ... from rest_framework.authentication import TokenAuthentication from rest_framework.permissions import IsAuthenticated from rest_framework.decorators import authentication_classes, permission_classes, api_view def graphql_token_view(): view = GraphQLView.as_view(schema=schema) view = permission_classes((IsAuthenticated,))(view) view = authentication_classes((TokenAuthentication,))(view) view = api_view(['GET', 'POST'])(view) return view urlpatterns = [ # ... url(r'^graphql_token', graphql_token_view()), url(r'^graphql', csrf_exempt(GraphQLView.as_view(schema=schema))), url(r'^graphiql', include('django_graphiql.urls')), # ...
请注意,我们添加了一个新的
^graphql_token
端点,并保留^graphql
了GraphiQL工具使用的原始端点。然后,您应该
Authorization
在GraphQL客户端中设置标头并指向graphql_token
端点。
更新:请参阅此GitHub问题,其中人们提出了替代解决方案和完整的工作示例。