【问题标题】:Django GraphQL JWT: tokenAuth mutation returns "str object has no attribute decode"Django GraphQL JWT:tokenAuth 突变返回“str 对象没有属性解码”
【发布时间】:2021-04-18 14:08:45
【问题描述】:

目前我正在从文档页面运行 django-graphqljwt 的基本示例。 https://django-graphql-jwt.domake.io/en/latest/quickstart.html

import graphene
import graphql_jwt


class Mutation(graphene.ObjectType):
    token_auth = graphql_jwt.ObtainJSONWebToken.Field()
    verify_token = graphql_jwt.Verify.Field()
    refresh_token = graphql_jwt.Refresh.Field()


schema = graphene.Schema(mutation=Mutation)

但是,如果我运行 tokenAuth 突变,它会在 GraphiQL 界面中引发以下错误。 注意,如果我输入了错误的凭据,它会抛出“Please enter valid credentials”而不是下面的。

{
  "errors": [
    {
      "message": "'str' object has no attribute 'decode'",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "tokenAuth"
      ]
    }
  ],
  "data": {
    "tokenAuth": null
  }
}

【问题讨论】:

    标签: django graphql graphene-django django-graphql-jwt


    【解决方案1】:

    我在 github 上发现这是 django-graphql-jwt 软件包的一个未解决问题,并且能够通过使用 1.7.0 版本的 PyJWT 来解决它。当前安装的是版本2.0

    https://github.com/flavors/django-graphql-jwt/issues/241

    【讨论】:

      【解决方案2】:

      我使用django-graphql-jwt==0.2.1 没有这个问题。显然,问题与django-graphql-jwt 的新版本有关,现在是0.3.0。或者,正如您所提到的,您可以将PyJWT 绑定到1.7.0

      解决方案是在您的requirements.txt 文件中使用这些有界包,如下所示:

      django-graphql-jwt==0.3.0
      PyJWT==1.7.0
      

      或者

      django-graphql-jwt==0.2.1
      

      【讨论】:

        【解决方案3】:

        我遇到了类似的问题,这显然是因为PyJWT==2.3.0django-graphql-jwt 不兼容,正如Dipanshu 在他的回答中提到的那样,它在将PyJWT==2.3.0 降级为PyJWT==1.7.0 后工作。

        使用下面的 pip 命令检查你的虚拟环境中的 PyJWT 包的版本是否大于 2.0.0

        pip show PyJWT
        

        如果大于 2.0.0,使用下面的 pip 命令在你的虚拟环境中降级包

        pip install --upgrade PyJWT==1.7.0
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-05
          • 2017-10-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-04
          • 2020-04-01
          相关资源
          最近更新 更多