我得到了一个不包含任何点的 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
但是,当我在 jwt.io 上放置相同的标记时,它会被解码,我可以看到完整的字典。我错过了什么?
这是我的代码 -
import jwt
a = "someToken"
print(jwt.decode(a))
在此处将 pastebin 链接附加到令牌,因为它太长而无法放在这里。
PS 我不同意使用 pyjwt 的想法。如果任何其他图书馆可以解码它对我来说都是一样的。