如何在GAE中使用ES256创建JWT

时间:2018-12-18 18:32:13

标签: python google-app-engine jwt google-app-engine-python python-cryptography

我正在研究一种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)

谢谢。

0 个答案:

没有答案