python解码不包含任何点的JWT

python解码不包含任何点的JWT,python,jwt,pyjwt,Python,Jwt,Pyjwt,我得到了一个不包含任何点的JWT。我在某个地方读到,JWT的典型格式是3段字符串加上总共2个点。当我尝试解码令牌时,使用PyJWT,我得到以下错误- Traceback (most recent call last): File "/home/neelanjana/.virtualenvs/athena_env/lib/python3.7/site-packages/jwt/api_jws.py", line 180, in _load signing_input, crypto_s

我得到了一个不包含任何点的JWT。我在某个地方读到,JWT的典型格式是3段字符串加上总共2个点。当我尝试解码令牌时,使用PyJWT,我得到以下错误-

Traceback (most recent call last):
  File "/home/neelanjana/.virtualenvs/athena_env/lib/python3.7/site-packages/jwt/api_jws.py", line 180, in _load
    signing_input, crypto_segment = jwt.rsplit(b'.', 1)
ValueError: not enough values to unpack (expected 2, got 1)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/neelanjana/.virtualenvs/athena_env/lib/python3.7/site-packages/jwt/api_jwt.py", line 84, in decode
    payload, _, _, _ = self._load(jwt)
  File "/home/neelanjana/.virtualenvs/athena_env/lib/python3.7/site-packages/jwt/api_jws.py", line 183, in _load
    raise DecodeError('Not enough segments')
jwt.exceptions.DecodeError: Not enough segments

将pastebin链接附加到令牌,因为它太长,无法放在此处


另外,我不赞成使用pyjwt。如果任何其他库可以解码它,对我来说都是一样的。

回答我自己的问题,上面的字符串不是JWT,而是base64编码的字符串。使用base64解码恢复了实际的dict。

回答我自己的问题,上面的字符串不是JWT,而是base64编码的字符串。使用base64解码恢复了实际的dict。

在jwt.io上,它在底部显示“无效签名”。您是如何生成令牌的?而且内容似乎相当大。我不确定我会在json web令牌中放入那么多数据。从我在jwt.io上看到的情况来看,您可能将实际数据放在了头的位置,而有效负载(数据)是空的。如果你可以更新代码来显示你是如何生成令牌的-这会很有帮助。我是由第三方提供令牌的,我对生成令牌的方式没有任何控制权,因此无法确认使用了什么algo/SECURE等。在jwt.io中,虽然它表示签名无效,但它仍然能够解码右侧的dict,这就是我在本例中所希望得到的。我尝试使用jwt.get_unverified_头(token_string)并得到了相同的响应。只是想知道解码这个令牌是否可行?您可以查看PyJWT的源代码,如果可能的话,只使用它的函数对第一部分进行解密。在jwt.io上,它的底部也显示“无效签名”。您是如何生成令牌的?而且内容似乎相当大。我不确定我会在json web令牌中放入那么多数据。从我在jwt.io上看到的情况来看,您可能将实际数据放在了头的位置,而有效负载(数据)是空的。如果你可以更新代码来显示你是如何生成令牌的-这会很有帮助。我是由第三方提供令牌的,我对生成令牌的方式没有任何控制权,因此无法确认使用了什么algo/SECURE等。在jwt.io中,虽然它表示签名无效,但它仍然能够解码右侧的dict,这就是我在本例中所希望得到的。我尝试使用jwt.get_unverified_头(token_string)并得到了相同的响应。只是想知道解码这个令牌是否可行?你可以研究一下PyJWT的源代码,如果可能的话,用它的函数解密第一部分。这是我在4月23日的评论中告诉你的。但是我想你可以删除这个问题,因为我不太可能在将来对任何人有用。同意,稍后会删除。谢谢:)这是我在4月23日的评论中告诉你的。但是我想你可以删除这个问题,因为我不太可能在将来对任何人有用。同意,稍后会删除。谢谢:)