【问题标题】:Python Graphene. Authorization error handling蟒蛇石墨烯。授权错误处理
【发布时间】:2020-05-13 02:53:56
【问题描述】:

我有以下环境:

前端

@vue/cli 4.1.2

vue-apollo 3.0.2

后端

python 3.8

django 3.0.2

石墨烯-django 2.8.0

django-graphql-jwt 0.3.0

我的问题是在令牌过期时处理身份验证错误。例如,如果我在令牌过期时请求查询me:

def resolve_me(root, info):
    user = info.context.user
    if user.is_anonymous:
        raise GraphQLError('Authentication failure!!')
    return user

在 apollo 客户端的链接中收到 200 且 networkError 对象为空且 graphQLErrors 对象不提供状态码。

您如何处理这种情况? 提前致谢。

【问题讨论】:

    标签: vue.js graphene-python


    【解决方案1】:

    看看这条评论https://github.com/graphql-python/graphene/issues/142#issuecomment-221290862

    据我所知,GraphQL 规范根本没有讨论 http 响应代码。 HTTP 的状态码与休息原则密切相关。我不清楚 GraphQL API 是否应该区分 2XX 和 4XX 状态码。

    最值得注意的是,您可以将多个突变批处理到对服务器的同一个请求中。如果一个成功创建资源(201),一个变异资源(200),一个验证失败(400),另一个目标对象不存在(404),API的返回值应该是什么?

    目前,GraphQL API 似乎在 200 方面出错,除非服务器崩溃,在这种情况下为 500。

    【讨论】:

      猜你喜欢
      • 2020-01-27
      • 1970-01-01
      • 2020-01-08
      • 2017-03-18
      • 2020-09-19
      • 2017-05-11
      • 2022-01-24
      • 2017-05-13
      • 2018-01-11
      相关资源
      最近更新 更多