例如,如果authentication_classes = (TokenAuthentication,)
在API视图中使用,则可以将端点添加到以这种方式装饰的GraphQLView中:
# ...
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
端点。