问题标签 [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.
django - Django 石墨烯订阅不断加载而不向我发送数据
我按照这里的说明使用了现有的 graphen api gitHub repo。但是,我尝试了所有三个选项
- graphql-python/graphql-ws
- datavance/django-channels-graphql-ws
- jaydenwindle/石墨烯订阅。但他们都没有和我一起工作。
- 问题:在此处输入图像描述,如您所见,它在不发送数据的情况下永远加载。
- 目标:我需要创建实时 grapheql api(订阅)
- 文件:注意:在 repo 中,您将看到没有订阅代码的原始 repo。
django - 如何在 django-graphql-jwt 中配置 JWT 令牌以获取令牌中的 userId 而不仅仅是用户名?
TLDR - 但默认情况下,从后端发送的 JWT 令牌仅包含用户名。我也想要 userId。这是它当前包含的内容:-
我有一个 Django GraphQL API(使用 Graphene、django-graphql-auth、django-graphql-jwt)和一个 Angular 前端。我有完整的身份验证设置。现在我面临的问题是我将令牌存储在本地存储中,因此当用户再次打开浏览器时,我想验证该令牌并仅使用其中的信息来获取用户的 ID,然后使用它userId 来获取他们的用户个人资料信息,这是完成登录过程的重要步骤。
我不确定如何自定义有效负载以包含 userId。这样当用户在关闭后打开浏览器时,我可以简单地使用令牌中的信息来完全登录。我对 Python 和 Django 都很陌生。我在网上的任何地方都找不到详细的过程,也许我不是在寻找正确的东西或在正确的地方。详细的说明会很有帮助。
django - 带有 JWT 身份验证实现的 Django GraphQL API 仍然允许来自 Postman 的未经身份验证的请求获取数据。我该如何解决?
我构建了一个 Django API,它使用django-graphql-auth和django-graphql-jwt包来实现身份验证。我按照包的文档进行操作,一切正常,一切都在我的 Angular UI 中运行。唯一的问题是,即使是从 Postman 发出的没有 Authorization 标头的请求,也能够从 graphql API 获取数据。
这是我的 Django 项目的 settings.py
网址.py
示例查询:-
正如你所看到的,我已经按照所有必要的步骤来适应两个包中的说明。如何防止未经授权的请求访问我的数据?
更新:-
我正在使用Django-graphql-extras进行分页,在我的 Graphql api 上进行过滤。所以查询都使用该包中的内置方法。
然而,突变是手动的。
查询文件:-
示例突变代码:-
django - “错误:错误解码签名”和“变量 '$token' 从未在操作 'VerifyToken' 中使用。”
工具:Django + Next.js + Django-GraphQL-JWT
工作原理:我可以登录用户并获得一个 JWT 令牌,除了将令牌保存在 localStorage 中以供稍后检索和验证之外,我还保存了该令牌。
什么不起作用:我可以成功检索 localStorage 令牌,但是当我尝试使用库来验证服务器上的令牌时,我收到此错误:
[GraphQL error]: Message: Error decoding signature, Location: [object Object], Path: verifyToken
验证码:
突变:
架构.py:
这是我在 GraphQL 中手动尝试时会发生的情况:
如果我的突变包括令牌:
返回:
但是,如果我不包含这样的令牌:
返回:
我尝试过的其他事情:我发现一些关于 SECRET_KEY 是解码问题的参考,但我已经在我的设置中设置了它,但问题没有任何改善。我还没有找到任何其他似乎可以在这里工作的解决方案。
我也尝试过使用自定义 JWT_VERIFY 模块,但这并没有帮助我解决问题。
django - 在 azure 活动目录中访问多个 api 的最佳实践是什么
我们在 django-graphene 中创建了一个 graphql api。在这个 api 中,我们使用 django-graphql-auth 为用户提供身份验证。
我们还有 vue js 客户端应用程序,它可以让用户在我们创建的 api 的帮助下注册和登录。
但是,我们还决定将 microsoft 集成到身份平台,以便我们让用户使用他们的 microsoft 帐户登录,我们计划使用 microsoft graph。
这意味着,用户将拥有两个令牌,一个用于 microsoft graph 和一个用于我们创建的 api。
我们应该如何整合这两个api?
django - 如何在 django-graphql-jwt 中集成 Facebook 登录?
我们有一个 django 项目,它使用该Graphene-Django
库在我们的项目中实现 GraphQL API。我们的移动应用程序可以访问此后端。对于应用程序的身份验证,我们使用该django-graphql-jwt
库,它是 Django 中采用 GraphQL 方法的 JSON Web Token 库。
现在我们想在我们的系统中实现 Facebook 登录,并通过它在 Facebook 中进行身份验证。经过身份验证后,从移动应用程序发送到我们后端的只是用户的电子邮件。如何在django-graphql-jwt
没有密码的情况下注册和验证用户?或者有更好的工作流程吗?
django - 如何将 Cognito SSO 与 Django 葡萄烯集成
我们有一个正在运行的 django 项目,它已经使用graphene
和graphql_jwt
(以及 django 的内部身份验证)。我们正在尝试将 SSO 与 cognito 集成到这个项目中,但是由于graphene
并且graphql_jwt
已经有了它们内置的身份验证机制,因此很难理解如何将 Cognito 与这些集成。我的猜测是,我主要只需要添加一个身份验证后端,它将用户设置为使用cognito
. 但这会导致 graphql 的现有身份验证出现问题,并且它无法识别user
已经通过身份验证。
如何将 cognito 的身份验证添加到现有graphql_jwt
流程中?
django - 由 Django Channels 中间件处理的 Apollo 客户端订阅传递 JWT 令牌
我在 Vue3 应用程序上使用 Graphql 订阅和 Apollo 客户端,在我的后端应用程序中使用 Django graphQL Channels 和 DjangoGraphqlJWT 包。
我正在尝试通过 connectionParams 在 Apollo 订阅上传递 JWT 令牌。
按照这个解决方案。我实现了一个中间件。然而,Apollo 将 connectionParams 作为有效负载传递。我找不到在中间件级别访问有效负载的方法,但只能在消费者上访问。
我可以从中间件的范围参数访问查询字符串属性。但是,在订阅启动后,我找不到传递查询参数的方法。
客户端:
后端:
asgy.py
通道中间件.py
据我了解,我只能访问中间件中的查询字符串/ URL 参数,而不能访问 Apollo 有效负载。现在可以在查询字符串中传递令牌吗?但是,由于提供 Apollo 客户端时令牌可能不存在,因此需要像 connectionParams 一样重新评估它。
任何解决方法?
django - 使 updateAccount 突变中的字段可选 django graphql auth
我正在使用包django graphql auth来处理 Django/Graphql 项目中的身份验证。我正在尝试将其设为UPDATE_MUTATION_FIELDS
可选,以便在使用 updateAccount 突变时不必输入它们,但没有成功。
我的相关部分settings.py
如下所示:
相关models.py
:
所以我决定使用自定义表单将这些字段显式设置为可选:
我的用户突变看起来像:
最后,我将上面的突变用作:
当我访问 graphql URL 时,出现错误Cannot create a consistent method resolution order (MRO) for bases InputObjectType, UpdateAccountInput
我该怎么做才能使要更新的字段成为可选字段?
python - 如何解决“NoneType”对象在 Graphene-django 中没有属性“字段”
有这个突变
在执行上述突变之前graphiql
,我添加了请求标头"Authorization": "JWT <token>"
,以便对用户进行授权。但我得到了错误graphql.error.located_error.GraphQLLocatedError: 'NoneType' object has no attribute 'fields'
。删除标题时不会发生错误。当我将它包含在查询请求中时,它也可以正常工作。难道我做错了什么?我也需要授权才能发生突变。
我跟踪了 Traceback,它导致了 file .../site-packages\graphql_jwt\middleware.py
。看来这是功能allow_any()
行 18中的包中的错误field = info.schema.get_type(operation_name).fields.get(info.field_name)
。新手,我需要帮助。
我正在使用graphene-django==2.15.0
和django-graphql-jwt==0.3.4