【发布时间】:2019-04-19 15:22:36
【问题描述】:
我正在使用pyjwt 库来解码 JWT 令牌。解码时出现此错误。代码在文档中给出。
import jwt
encoded_jwt='''eyJ0eXAiOiJKV1QiLCJhbG......'''
secret=b''''-----BEGIN PUBLIC KEY-----
MIIFRjCCBC6gAwIBAgIQCIdSGhpikQCjOIY154XoqzANBgkqhkiG9w0BAQsFADBN
......
-----END PUBLIC KEY-----'''
print(jwt.decode(encoded_jwt, secret , algorithms=['RS256']))
raise ValueError("Could not deserialize key data.") ValueError: could 不反序列化关键数据。
请你帮我解决它,因为当我在JWT 网站上使用它时它正在工作。
这是完整的错误日志..
Traceback(最近一次调用最后一次):文件 “/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/jwt/algorithms.py”, 第 205 行,在 prepare_key 中 key = load_pem_private_key(key, password=None, backend=default_backend()) 文件 “/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/cryptography/hazmat/primitives/serialization.py”, 第 20 行,在 load_pem_private_key 中 返回 backend.load_pem_private_key(数据,密码)文件“/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/cryptography/hazmat/backends/openssl/backend.py”, 第 1014 行,在 load_pem_private_key 中 密码,文件“/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/cryptography/hazmat/backends/openssl/backend.py”, 第 1233 行,在 _load_key self._handle_key_loading_error() 文件“/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/cryptography/hazmat/backends/openssl/backend.py”, 第 1291 行,在 _handle_key_loading_error raise ValueError("无法反序列化关键数据。") ValueError: 无法反序列化关键数据。
在处理上述异常的过程中,又发生了一个异常:
Traceback(最近一次调用最后一次):文件 “/home/sathiyakugan/PycharmProjects/JWTsample/sample.py”,第 45 行,在 打印(jwt.decode(encoded_jwt,秘密,算法=['RS256']))文件 "/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/jwt/api_jwt.py", 第 93 行,在解码中 jwt,键=键,算法=算法,选项=选项,**kwargs 文件 "/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/jwt/api_jws.py", 第 157 行,在解码中 密钥,算法)文件“/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/jwt/api_jws.py”, 第 221 行,在 _verify_signature key = alg_obj.prepare_key(key) 文件“/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/jwt/algorithms.py”, 第 207 行,在 prepare_key 中 key = load_pem_public_key(key, backend=default_backend()) 文件“/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/cryptography/hazmat/primitives/serialization.py”, 第 24 行,在 load_pem_public_key 返回 backend.load_pem_public_key(data) 文件“/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/cryptography/hazmat/backends/openssl/backend.py”, 第 1040 行,在 load_pem_public_key self._handle_key_loading_error() 文件“/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/cryptography/hazmat/backends/openssl/backend.py”, 第 1291 行,在 _handle_key_loading_error raise ValueError("无法反序列化关键数据。") ValueError: 无法反序列化关键数据。
进程以退出代码 1 结束
【问题讨论】:
-
@stovfl 不,这是不同的问题
-
您似乎有错字。在您的公钥中多加一个撇号,就在开头。
标签: python authentication oauth jwt encode