AWS Boto3 Запомни Меня Реализация Python

#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. Да, правильно — в этом случае, если они в данный момент вошли в систему, либо разрешите ей выйти из системы и попросите их снова войти в систему, либо обновите свой токен. Выбор за вами, исходя из вашей бизнес-логики.