问题标签 [python-jose]

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 回答
1827 浏览

python - 哪个 Python JOSE 库支持嵌套 JWT(签名+加密)?

我查看了 python-jose 和 jose,但似乎都不支持加密签名的 JWT。例如,“jose”库支持单独签名和加密,无需嵌套。

我是否遗漏了一些东西,比如在库外嵌套 JWT 相当容易?如果是这样,请分享有关实现此目的的提示,以便结果格式正确。

0 投票
2 回答
12519 浏览

python - JWT在python中加密有效载荷?(JWE)

根据RFC 7516,应该可以加密有效载荷/声明,称为 JWE。

有没有支持它的python库?

我已经检查了 PyJWT、python-jose 和 jwcrypto,但它们都只有使用HS256(JWS) 签名的示例。

抱歉,如果这很明显,但是当涉及到涉及加密的事情时,我会格外谨慎。

0 投票
1 回答
6773 浏览

python - 如何在 Python 中解码 Firebase JWT 令牌

我添加了 Firebase 以允许客户端直接从 Web 应用程序客户端(浏览器)进行身份验证。我正在使用firebase-web JS 包,效果很好。我可以在浏览器中看到我收到了一个包含用户信息的用户对象,包括一个idToken.

然后我需要在我的服务器后端验证这个用户,这是 python django。在 Firebase 文档中,我找到了我正在尝试做的操作方法,即验证 id token

由于他们没有支持的 Firebase sdk for python,我需要使用第三方解决方案。在 jwt.io 网站上找到它后,我来到了python-jose 包。这个例子看起来很简单:

这是我第一次使用 JWT。我不知道该用什么'secret'。我尝试将我的 id 令牌粘贴为token,并将 Firebase 控制台中的 Web API 密钥粘贴为secret,但出现此错误:

jose.exceptions.JWKError:不支持 RSA 密钥格式

我还尝试了JWT 调试器,它似乎正确地读取了我的大部分 id 令牌,但签名验证正在寻找公钥和/或私钥,这就像在'secret'逃避我一样。

在此处输入图像描述

我真的不知道如何找到这个秘密,以及如何验证 JWT id 令牌。Firebase 文档(第三方部分)的信息是:

最后,确保 ID 令牌由与令牌的孩子声明对应的私钥签名。从https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com获取公钥 并使用 JWT 库来验证签名。使用来自该端点的响应的 Cache-Control 标头中的 max-age 值来了解何时刷新公钥。

我尝试将整个 json blob 从该 googleapis url 粘贴到 JWT 调试器中,但仍然收到“无效签名”警报。我不明白如何使用该公钥。

python-jose 应该适用于这种方法吗?如果是这样,我应该使用什么作为秘密?如果没有,有人可以指出我正确的方向吗?

谢谢。

0 投票
0 回答
556 浏览

python - 为什么安装 python-jose 需要 C++ 14.0

当我在 Windows 上发出 pip install python-jose 时出现此错误:

错误:需要 Microsoft Visual C++ 14.0。使用“Microsoft Visual C++ 构建工具”获取它:http: //landinghub.visualstudio.com/visual-cpp-build-tools

我很困惑为什么我需要安装 Visual C++ 14.0?

0 投票
0 回答
165 浏览

python - Python-Jose 与 Google App Engine

我正在尝试让python-jose与 Google App Engine 一起工作。

我添加后立即from jose import jwt出现错误ImportError: No module named Crypto.Random.OSRNG.winrandom

README.rst它说:

这是一个与需要使用 PyCrypto 库的 Google App Engine 完全兼容的 JOSE 实现。

我猜dev_appserver.py该文件已被阻止,lib/Crypto/Random/OSRNG/winrandom.pyd因为它不是纯 Python。

GAE Python运行环境必须是纯Python

有什么我不明白的吗?

0 投票
2 回答
390 浏览

django - 无法验证 Firebase 令牌

我正在制作一个使用谷歌登录的应用程序。我还有一个链接到应用程序的 Django 后端,我想在 Django 后端验证用户。我在互联网上找到了许多解决方案,但没有一个有效。可能我在某个地方搞砸了。

我尝试使用 python-jose 进行验证,代码如下:

我也试过oauth2client,代码在这里:

我还为 python 尝试了 firebase_admin:

只是为了检查 firebase_admin 库本身是否正常工作,我将用户 ID 从应用程序传递到服务器,并尝试使用 firebase_admin 删除用户,我可以做到这一点。但由于某种原因,我无法验证令牌。

谢谢您的帮助。

0 投票
1 回答
1175 浏览

python - 为什么我不能用我的 JWK 签署这些声明?

我正在编写这个 python 代码来创建 RSA 私钥和公钥。然后从私钥创建一个 JWK,然后使用该 JWK 签署声明。

当我运行它时,它在签名步骤失败:

是什么导致了这个错误,我怎样才能使它工作?

0 投票
1 回答
4906 浏览

python - 如何生成我用 jose.jwt.decode 解码的 RS256 签名令牌

我有一个函数,它接收一个令牌,对其进行解码,并使用有效负载来执行一些逻辑。我想使用我操纵的声明生成令牌以测试该功能。

我从https://mkjwk.org/生成了一个密钥对,并以下列方式使用它:

以上是给我一个jose.exceptions.JWTError: Signature verification failed.错误。

为什么是这样?我怎样才能生成一个可以用我想要的声明正确解码的令牌?

0 投票
1 回答
1691 浏览

python - lambda 函数中的 python 和 python-jose 错误

我对 python 有点陌生,以前从未使用它来验证 jwt 令牌。

我正在写一个 lambda 函数。我确定问题很简单,但似乎无法解决。

我不断收到此错误:

我正在我的 Mac 上为 3.7 创建一个虚拟环境,并且有一个非常简单的 requirements.txt 文件:

我的代码在第一行爆炸了:

实际令牌值是什么并不重要,这显然是我使用库的方式的问题。应该是有些不兼容吧。我用谷歌搜索过,没有看到其他人有这个问题,所以这一定是我正在做的事情非常愚蠢:)

有人可以帮忙吗?谢谢。

0 投票
1 回答
29 浏览

python-jose - 是否有用于检查数组长度的 Python 函数?

我需要计算数组中的项目数。有没有功能可以做到这一点?我可以用 for 循环来做,但如果有一个函数,它会容易 100 倍。