Лямбда обратного вызова иногда получает {'code': '', 'state': 'my-correct-state'} - PullRequest
0 голосов
/ 17 сентября 2018

Я использую AWS Cognito с размещенным пользовательским интерфейсом, у меня есть Lambda callback (вызывается AWS), который обменивается полученными code токенами.Это работает, но иногда в логах я вижу, что event выглядит так:

 {'code': '', 'state': '305598223734340355033510307010'}

Может быть, какая-то проблема с аутентификацией через Google, Amazon или Facebook ... Я не знаю, как я могу что-то проверить.

Часть моего auth_cognito.py:

payload = {
  'grant_type': 'authorization_code',
  'client_id': client_id,
  'code': event['code'],
  'redirect_uri': url_redirect
}

tryis = 3
tokens: typing.Dict[str, str] = {}
while 'id_token' not in tokens and tryis > 0:
  # Retry for case when resp == {'error': 'Internal Error'}; TODO use SDK?
  tryis -= 1
  tokens = botocore.vendored.requests.post(
    url='https://intelligentspeaker.auth.us-east-1.amazoncognito.com/oauth2/token',
    headers={'Content-Type': 'application/x-www-form-urlencoded'},
    data=payload).json()

try:
  id_token_gwt = _get_payload_json(tokens['id_token'])
except KeyError:
  print(f'ERROR: KeyError - no `id_token` in this json: {tokens}', file=sys.stderr)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...