#python #amazon-web-services #boto3 #amazon-cognito
Вопрос:
У меня есть веб-приложение, над которым я работаю, которое использует AWS Cognito для аутентификации. Я использую пакет SDK Boto3.
Я пытаюсь установить флажок «Запомнить меня». Я немного сбит с толку относительно того, как DeviceSecretVerifierConfig
confirm_device
предполагается создать параметр в.
Это то, что у меня сейчас есть:
esp = client.admin_initiate_auth(
UserPoolId=COG_USER_POOL,
ClientId=COG_USER_POOL_APP,
AuthFlow='ADMIN_USER_PASSWORD_AUTH',
AuthParameters={
'USERNAME': username,
'PASSWORD': password,
},
ClientMetadata={
'username': username,
'password': password,
})
resp = client.confirm_device(
AccessToken=resp['AuthenticationResult']['AccessToken'],
DeviceKey=resp['AuthenticationResult']['NewDeviceMetadata']['DeviceKey'],
DeviceSecretVerifierConfig={
**How do I populate this?**
}
)
if remember:
remember_status = 'remembered'
else:
remember_status = 'not_remembered'
resp = client.admin_update_device_status(
UserPoolId=COG_USER_POOL,
Username=username,
DeviceKey=resp['AuthenticationResult']['NewDeviceMetadata']['DeviceKey'],
DeviceRememberedStatus=remember_status
)
Комментарии:
1. У вас включен 2FA, поэтому вы пытаетесь отслеживать устройство, или вы действительно просто хотите, чтобы у вас было типичное «Запомни меня», которое не запрашивает у пользователя вход в систему?
2. Я только ищу типичное «Запомни меня», которое не запрашивает пользователя, в нем нет 2FA. @ErmiyaEskandary
3. Если нет MFA, не делайте этого вообще — устройства отслеживания предназначены только для решений с поддержкой 2FA! Просто сохраните значение, и если они выберут «Запомнить меня», используйте токен обновления, чтобы обновить свой токен доступа, когда он истечет.
4. Итак, сохраните флаг «remember_me» в локальном хранилище, а затем, когда срок действия маркера доступа истечет и флаг будет установлен, обновите? Столкнусь ли я с какими-либо проблемами, когда пользователь, который не выбрал запомнить меня, просматривает веб-сайт, вошедший в систему, когда внезапно их сеанс прекращается из-за истечения срока действия их маркера доступа и его обновления?
5. Да, правильно — в этом случае, если они в данный момент вошли в систему, либо разрешите ей выйти из системы и попросите их снова войти в систему, либо обновите свой токен. Выбор за вами, исходя из вашей бизнес-логики.