Python 3.7 Authlib UnsupportedAlgorithmError

时间:2018-10-28 08:18:11

标签: python authlib

我在Docker的Ubuntu 18.04上遇到了这个问题。当我在macOS上开发此应用程序时,没有此类错误。

我使用以下Dockerfile构建映像:https://pastebin.com/rG32a0dv

requirements.txt:

Flask==1.0.2
uWSGI==2.0.17.1
Authlib==0.10
cryptography==2.3.1

代码中的用法:

header = {'alg': 'RS256'}
payload = {'login': login}

auth_token = jwt.encode(header, payload, private_key)

try:
    claims = jwt.decode(auth_token, public_key)
except BadSignatureError:
    return False

整个Flask应用程序:https://pastebin.com/9vVJQL1w

我有错误:

authlib.specs.rfc7515.errors.UnsupportedAlgorithmError: unsupported_algorithm:

详细信息:https://pastebin.com/MjFRce1F

为什么会出现此错误?我该怎么解决?

1 个答案:

答案 0 :(得分:1)

密码术对于CPython 3.7没有manylinux轮子。在这种情况下,您需要自己在Linux上构建加密。请遵循文档:

https://cryptography.io/en/latest/installation/#building-cryptography-on-linux

您可以尝试导入一些加密模块以进行验证:

from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric.utils import (
    decode_dss_signature, encode_dss_signature
)
from cryptography.hazmat.primitives.asymmetric.ec import ECDSA
from cryptography.hazmat.primitives.asymmetric import padding

通过https://github.com/lepture/authlib/blob/v0.10/authlib/specs/rfc7518/_backends/_jws_cryptography.py