我正在研究一种Google App Engine解决方案,该解决方案需要与通过JWT进行身份验证的API集成。要使用的加密算法是ES256,但是每次尝试使用ES256调用jwt.encode()
方法时,都会引发以下错误:
ImportError: No module named cryptography.hazmat.bindings._constant_time
之所以发生这种情况,是因为App Engine(标准环境)不支持cryptography.io,因为它使用CFFI(C外部功能接口)。
是否还有其他推荐的方法可以通过我的Python App Engine应用程序并使用ES256创建此JWT?
这是简化的代码:
import jwt
keystring = """-----BEGIN PRIVATE KEY-----
SECRET
-----END PRIVATE KEY-----"""
HEADERS = {'alg': 'ES256', 'kid': '1234SECRET', 'typ': 'JWT'}
PAYLOAD = {
'iss': 'secret-secret-secret',
'exp': time.time() + 20 * 60,
'aud': 'audience'
}
key = jwt.encode(PAYLOAD, keystring, algorithm='ES256', headers=HEADERS)
谢谢。