问题标签 [django-graphql-jwt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
838 浏览

python - DJANGO-GRAPHQL-JWT:我们如何知道刷新令牌发布后的年龄?

概述

基于长期运行刷新令牌的设置部分中的概念。

这意味着您需要每 5 分钟刷新一次 [访问令牌],并且您需要在刷新令牌发出后 7 天内更换您的刷新令牌。

这将使用户能够保持刷新令牌会话,只要我们可以在 7 天内刷新它例如 'JWT_REFRESH_EXPIRATION_DELTA': timedelta(days=7))。

请注意,您不能使用过期的刷新令牌进行调用refreshToken(refreshToken: $refreshToken),因为这可能会导致"message": "Refresh token is expired".

问题

现在这里的难题是我们如何知道刷新令牌将在 7 天后过期?所以我们可以创建一个逻辑来检查它是否还有 1 天的会话时间然后触发refreshToken()突变?

结论

在不知道刷新令牌的到期日期的情况下,开发人员将不得不集成存储在客户端发布刷新令牌之后的日期,以确定刷新令牌的年龄。

好吧,如果我遗漏了一些东西,也许已经有一种简单的方法来处理刷新令牌到期日期的检查?

0 投票
1 回答
405 浏览

graphql - 通过 CORS 的 GraphQL 请求的无效响应和通过使用 JWT 的 GraphiQL 处理身份验证的有效响应

问题是我总是收到没有任何有效负载的 400 响应代码。即使出现问题,graphql 也会使用代码 200 和带有错误块的有效负载。事实上,GraphiQl 工作正常,告诉我设置和架构是正确的。所以......我被困住了。也许,任何想法,在哪里看?

我不认为它失败是因为 cors 本身。我的应用在DRF下运行良好。我决定为我尝试新的技术并使用 GQL 覆盖应用程序。

我的起源:http: //127.0.0.1 :8080

这是我的阿波罗客户:

有我的要求(通过状态来自表单的变量值):

我使用 react-apollo-hook 来执行查询:

我的架构(根据文档):

从 GraphiQL 处理这个查询会给我一个有效的响应。GraphiQL 在浏览器的另一个选项卡上的http://127.0.0.1:8000/graphql上运行。

询问:

变量:

回复:

0 投票
1 回答
1266 浏览

unit-testing - 如何在 graphene_django 或 graphql_jwt 中测试 GraphQLError 异常?

我正在使用 graphene_django 和 graphql_jwt 在 django 中实现用户类型和身份验证。这是我的两个文件:位于名为“用户”的文件夹中的代码和相应的测试,该文件夹是应用程序级文件夹(但不是 django 应用程序)

架构.py

测试.py

然后,当我通过python manage.py test users它运行测试时,它会说:

我已经像这样搜索了stackoverflow [异常引发但未被assertRaises捕获] [1]

[1]:异常引发但未被 assertRaises 捕获,但这仍然不能解决我的问题。那么如何真正测试 GraphQLError 呢?

0 投票
0 回答
1381 浏览

django - Graphene-Django 和多对多关系查找

我有两个 Django 模型——教师和学生,并且有一个多对多的关系。教师可以有多个学生,学生可以有多个教师。有一种称为“备注”的“通过”模型,教师可以将学生标记为最喜欢的。

我是 GraphQL 的新手。我正在尝试实现两个查询:
1. 老师和他们所有的学生
2. 老师和他们最喜欢的学生

我在实施第二个查询时遇到了困难,并且一直无法这样做。

模型.py

架构.py

0 投票
1 回答
1170 浏览

django - 如何为 django-graphql-auth 使用自定义用户模型

我在我的项目中使用 graphql 并希望在注册时生成令牌。尽管 django-graphql-auth 具有所有书面变异,但它使用不同的用户模型。但我想使用我的自定义用户模型。我该怎么办?这是我的用户模型

0 投票
1 回答
272 浏览

django - 在 django-graphql-jwt 中自定义 get_payload 函数

请问,如何在django-graphql-jwt中自定义get_payload函数?

0 投票
1 回答
445 浏览

python - 基于类的视图django中的JWT验证

我已经使用 Django-graphql-jwt 库在 django 中实现了 jwt 身份验证,现在我想只允许使用 JWT 令牌的请求在我的端点 (/graphql) 上获取/发布。django-graphql-jwt 文档中有一些示例,例如@login_required,但我不想在每个查询和突变之上放置一个装饰器。所以,我决定限制对视图的访问。我在 url.py 中添加了 path('graphql/', PrivateGraphQLView.as_view()) 但是如何实现请求检查标头中的有效令牌?

0 投票
1 回答
367 浏览

python - /graphql 处的递归错误。超出最大递归深度

问题定义:

我已阅读有关使用此官方链接graphene-jwt中的包为我的项目添加 JWT 身份验证的文章。根据教程中所说,应该对项目文件进行一些更改:settings.py

  1. 首先应该安装包:
  1. 将 AuthenticationMiddleware 添加到MIDDLEWARE变量。
  1. 添加 JSONWebTokenBackend 后端AUTHENTICATION_BACKENDS变量:
  1. 将 JSONWebTokenMiddleware 添加到GRAPEHENE变量中。

完成第 4 步后,每个请求localhost:8000/graphql都有以下堆栈跟踪:

项目结构:

截屏: grpahql 超出最大递归深度 screenshot

不知道是bug还是我的错。(API 在添加上述配置之前运行良好,并且已经检查了很多次)我在互联网上搜索过,但没有找到我的问题的正确答案。如果有人可以帮助我,我将不胜感激。

PS1:与我有关的最著名的问题是this one,主要讨论python中的最大递归深度误差。但是我在这里无法理解此错误的原因。

PS2:我还在 settings.py 中添加了以下几行,但它仍然不起作用!

0 投票
1 回答
1058 浏览

python - 如何在 graphene-django GraphQLTestCase 中使用 django-grahql-jwt 进行身份验证?

我正在尝试根据石墨烯 django 文档测试我的突变。突变适用于@login_required装饰器,并且存在问题,因为任何登录测试方法都不起作用。我试过了self.client.loginself.client.force_login。我什至做了一个 tokenAuth 突变,并在那里硬编码了一些凭据,但它也不起作用;用户仍然是匿名的。

0 投票
1 回答
551 浏览

python - GraphQL:[Errno 111] 连接被拒绝

描述

我正在尝试为具有不同类型用户(司机、客户、系统管理员和授权人)的交通系统构建一个 API。为此,我AbstractUser为上述所有不同的用户创建了一个并使用继承关系。为了将 JWT 添加到模型中,我已经阅读了官方教程,但是每当我想创建一个像下面这样的新用户时,我都会遇到错误:

重现步骤

  1. 这是我的模型:
  1. 用户架构
  1. 项目架构

预期行为

我希望代码可以毫无问题地运行,但会遇到以下错误actual behavior

我还有另一个问题。正如我已经解释了各种用户和他们的注册,我需要不同的论点。但是在我们刚刚添加的模式中register = mutations.Register.Field(),我怎样才能达到这个目的?

实际行为

错误描述

要求