Cognito admin_initiate_auth отвечает с исключением Пользователь не существует при создании нового пользователя
Я пытаюсь создать нового пользователя в пуле пользователей Cognito с моего внутреннего сервера ruby. Используя этот код:
client = Aws::CognitoIdentityProvider::Client.new
response = client.admin_initiate_auth({
auth_flow: 'ADMIN_NO_SRP_AUTH',
auth_parameters: {
'USERNAME': @user.email,
'PASSWORD': '123456789'
},
client_id: ENV['AWS_COGNITO_CLIENT_ID'],
user_pool_id: ENV['AWS_COGNITO_POOL_ID']
})
Ответ я получаю Aws::CognitoIdentityProvider::Errors::UserNotFoundException: User does not exist
,
Я пытаюсь следовать потоку аутентификации сервера ( https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow.html), и из этого я понял, что Я мог бы создать нового пользователя, используя admin_initiate_auth
,
Я что-то здесь не так делаю?
Спасибо
0 ответов
Вы используете неправильный метод. admin_initiate_auth
для входа в систему / аутентификации пользователя с ADMIN_NO_SRP_AUTH
включенный.
Вам нужно использовать sign_up
метод:
resp = client.sign_up({
client_id: "ClientIdType", # required
secret_hash: "SecretHashType",
username: "UsernameType", # required
password: "PasswordType", # required
user_attributes: [
{
name: "AttributeNameType", # required
value: "AttributeValueType",
},
],
validation_data: [
{
name: "AttributeNameType", # required
value: "AttributeValueType",
},
],
analytics_metadata: {
analytics_endpoint_id: "StringType",
},
user_context_data: {
encoded_data: "StringType",
},
})
Вы можете найти его в документации по AWS Cognito IDP здесь.