В сценарии refresh_token (REFRESH_TOKEN_AUTH AuthFlow) AWS Cognito API, похоже, игнорирует значение, переданное для поля USERNAME. Проверка, похоже, ограничивается синтаксическим анализом регулярного выражения электронной почты. Т.е. API позволяет получать токен доступа для любого ИМЯ ПОЛЬЗОВАТЕЛЯ, такого как [email protected], с токеном обновления [email protected].
Сценарий: Войдите в Cognito:
response = boto3_client.admin_initiate_auth(
UserPoolId=POOL_ID,
AuthFlow='ADMIN_NO_SRP_AUTH',
AuthParameters={
'USERNAME': username,
'PASSWORD': password,
},
ClientId=CLIENT_ID,
)
Вызов обновления
Используя токен обновления ответа на вход, попробуйте выполнить обновление для другого пользователя, API не вернул ошибку.
response = boto3_client.admin_initiate_auth(
UserPoolId=POOL_ID,
AuthFlow='REFRESH_TOKEN_AUTH',
AuthParameters={
'USERNAME': username, #===== different user
'REFRESH_TOKEN': refresh_token,
},
ClientId=CLIENT_ID,
)
Ожидается ли это в потоке ADMIN_NO_SRP_AUTH? или ошибка в Cognito API?