我具有以下环境:
前端
@ vue / cli 4.1.2
vue-apollo 3.0.2
后端
python 3.8
django 3.0.2
graphene-django 2.8.0
django-graphql-jwt 0.3.0
我的问题是令牌过期时处理auth错误。例如,如果令牌过期时我请求查询me
:
def resolve_me(root, info):
user = info.context.user
if user.is_anonymous:
raise GraphQLError('Authentication failure!!')
return user
在apollo客户端的链接中收到200,并且networkError
对象为空,而graphQLErrors
对象未提供状态代码。
您如何管理这种情况? 预先感谢。
答案 0 :(得分:1)
查看此评论https://github.com/graphql-python/graphene/issues/142#issuecomment-221290862
据GraphQL规范所知,根本没有讨论HTTP响应代码。 HTTP的状态码与其余原则紧密相关。我不清楚GraphQL API是否应区分2XX和4XX状态代码。
最显着的是,您可以将多个变异批处理到服务器的同一请求中。如果成功创建一个资源(201),一个突变了资源(200),一个验证失败(400),而另一个目标对象不存在(404),那么API的返回值应该是什么?
目前,除非服务器崩溃(在这种情况下为500),否则GraphQL API似乎在200左右出错。