无效的凭据引发身份验证突变异常

Posted

技术标签:

【中文标题】无效的凭据引发身份验证突变异常【英文标题】:Invalid credentials raises exception on auth mutation 【发布时间】:2019-11-24 15:26:27 【问题描述】:

我在我的 django 项目中使用了 graphene-django 和 django-graphql-jwt。当我设置无效凭据时,服务器会引发“无效凭据”异常。

无效凭据是否应该在服务器上引发异常?当我用错误的数据测试 tokenAuth 突变时,Django 服务器会引发异常。

Django 服务器日志:

  File "/Users/cgf/.local/share/virtualenvs/testdjangoauthbackend-183R1gMP/lib/python3.7/site-packages/promise/promise.py", line 487, in _resolve_from_executor
    executor(resolve, reject)
  File "/Users/cgf/.local/share/virtualenvs/testdjangoauthbackend-183R1gMP/lib/python3.7/site-packages/promise/promise.py", line 754, in executor
    return resolve(f(*args, **kwargs))
  File "/Users/cgf/.local/share/virtualenvs/testdjangoauthbackend-183R1gMP/lib/python3.7/site-packages/graphql/execution/middleware.py", line 75, in make_it_promise
    return next(*args, **kwargs)
  File "/Users/cgf/.local/share/virtualenvs/testdjangoauthbackend-183R1gMP/lib/python3.7/site-packages/graphql_jwt/decorators.py", line 106, in wrapper
    result = f(cls, root, info, **kwargs)
  File "/Users/cgf/.local/share/virtualenvs/testdjangoauthbackend-183R1gMP/lib/python3.7/site-packages/graphql_jwt/decorators.py", line 89, in wrapper
    _('Please, enter valid credentials'))
graphql.error.located_error.GraphQLLocatedError: Please, enter valid credentials

【问题讨论】:

【参考方案1】:

我也经历过同样的事情。实际上,他们是故意显示堆栈跟踪的。我想,这个问题很快就会得到解决。详情请查看this thread

【讨论】:

【参考方案2】:

django-graphql-auth 扩展了 django-graphql-jwt 以添加更多功能,例如注册、电子邮件验证...

其中一个优点是它返回一个标准输出,包含successerrors

例如,它不会像在django-graphql-jwt 中针对无效凭据引发错误,而是返回:


  "data": 
    "tokenAuth": 
      "success": false,
      "errors": 
        "nonFieldErrors": [
          
            "message": "Please, enter valid credentials.",
            "code": "invalid_credentials"
          
        ]
      ,
      "token": null,
      "refreshToken": null,
      "unarchiving": false,
      "user": null
    
  

【讨论】:

以上是关于无效的凭据引发身份验证突变异常的主要内容,如果未能解决你的问题,请参考以下文章

请求具有无效的身份验证凭据。预期的 OAuth 2 访问令牌、登录 cookie 或其他有效的身份验证凭据 automl

FCM 推送 - 请求具有无效的身份验证凭据。预期的 OAuth 2 访问令牌、登录 cookie 或其他有效的身份验证凭据

Jwt 身份验证问题 - 凭据无效

用于创建手机身份验证凭据的验证ID在flutter中无效

Firebase Push - 身份验证凭据无效

Symfony 5 / 使用 API 编写自定义身份验证总是返回我无效的凭据