Я понимаю, что вы хотели бы, чтобы конечные пользователи вашего веб-приложения снова получали код подтверждения, если они не получили код подтверждения по какой-либо причине после регистрации, и я также понимаю, что вы получаете "NotAuthorizedException" когда вы пытаетесь запустить вызов API ResendConfirmationCode из своего кода, использующего PHP SDK.
Вызов API ResendConfirmationCode [1] можно использовать после вызова API регистрации [2], и он не является частью потока аутентификации AdminCreateUser, поэтому возникает ошибка. Вызов API AdminCreateUser изменяет статус нового пользователя на «Принудительное изменение состояния пароля», и ни вызов ResendConfirmationCode, ни вызов ForgotPassword не могут работать после того, как AdminCreateUser используется для создания нового пользователя.
Если вы хотите, чтобы ваши конечные пользователи снова получили код подтверждения, вы можете использовать сам вызов API AdminCreateUser и установить флаг «RESEND» в MessageAction в коде PHP. В моем конкретном случае использования не было бы другого способа отправить сообщение с подтверждением, как я понимаю в Amazon Cognito.
Пример вызова API в PHP в соответствии с официальной документацией выглядит следующим образом [3]:
$result = $client->adminCreateUser([
'DesiredDeliveryMediums' => ['<string>', ...],
'ForceAliasCreation' => true || false,
'MessageAction' => 'RESEND|SUPPRESS',
'TemporaryPassword' => '<string>',
'UserAttributes' => [
[
'Name' => '<string>', // REQUIRED
'Value' => '<string>',
],
// ...
],
'UserPoolId' => '<string>', // REQUIRED
'Username' => '<string>', // REQUIRED
'ValidationData' => [
[
'Name' => '<string>', // REQUIRED
'Value' => '<string>',
],
// ...
],
]);
После использования параметра «MessageAction» в качестве «RESEND» конечные пользователи должны иметь возможность снова получить сообщение подтверждения на своем конце.
Ссылки
[1]. https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/resend-confirmation-code.html
[2]. https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/sign-up.html
[3]. https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-cognito-idp-2016-04-18.html#admincreateuser