我正在开发一个需要与使用 JWT 进行身份验证的 API 集成的 Google App Engine 解决方案。要使用的加密算法是 ES256,但是每次我尝试jwt.encode()
使用 ES256 调用该方法时,都会抛出以下错误:
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)
提前致谢。