Мне дан 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))
Прикрепление ссылки для вставки к токену здесь , поскольку его слишком долго помещать сюда.
PS Я не женат на идее использования pyjwt. Если какая-то другая библиотека сможет ее декодировать, для меня все равно.