Как создать JWT с помощью ES256 в GAE - PullRequest
0 голосов
/ 18 декабря 2018

Я работаю над решением Google App Engine, которое должно интегрироваться с API, где аутентификация выполняется с помощью JWT.Используемый алгоритм шифрования - ES256, но каждый раз, когда я пытаюсь вызвать метод jwt.encode() с ES256, выдается следующая ошибка:

ImportError: No module named cryptography.hazmat.bindings._constant_time

Это происходит из-за криптографии.io не поддерживается в App Engine (стандартный env), так как он использует CFFI (интерфейс внешних функций C).

Существуют ли другие рекомендуемые подходы для создания этого JWT из моего приложения Python App Engine и с использованием ES256?

Вот упрощенный код:

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)

Заранее спасибо.

...