我在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
为什么会出现此错误?我该怎么解决?
答案 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