Как установить пароль пользователя Cognito с помощью экземпляра AWSCognitoIdentityProvider или любым другим способом без подтверждения по электронной почте или телефону? - PullRequest
0 голосов
/ 24 марта 2020

Я использую идентификатор пула пользователей: в формате: "XX-XXXX-X_XXXXXXXXX", т.е.

func setPassword(for user: String, callback: @escaping (Bool, String?) -> Void) {
        //Generating eight characters password with symbols and numbers
        let pass: String = generatePassword()

        let passwordRequest = AWSCognitoIdentityProviderAdminSetUserPasswordRequest()
        passwordRequest?.password = pass
        passwordRequest?.username = user.lowercased()
        passwordRequest?.permanent = NSNumber(value: true)
        passwordRequest?.userPoolId = "XX-XXXX-X_XXXXXXXXX"

        guard let request = passwordRequest else {
            callback(false, "Failed")
            return
        }

        let provider = AWSCognitoIdentityProvider.default()
        provider.adminSetUserPassword(request).continueWith { [weak self] (task) -> Any? in
            guard let _ = task.result else {
                callback(false, task.error?.localizedDescription ?? "Error")
                return nil
            }
            if let response = task.result {
                callback(true, "Success")
            } else {
                callback(false, "Failure")
            }
            return nil
        }
    }

Я получаю сообщение об ошибке:

__ type = ValidationException, сообщение = 1 обнаружена ошибка проверки: значение «XX-XXXX-X_XXXXXXXXX» в «identityPoolId» не может удовлетворить ограничение: элемент должен соответствовать шаблону регулярного выражения: [\ w -] +: [0-9a-f -] +}

Насколько я понимаю, AWS ожидает IdentityUserPool, но в SDK AWS API четко упоминается идентификатор userPoolID. Дайте мне знать, что я должен сделать, чтобы решить эту проблему. Заранее спасибо.

Ссылка на AWS API SDK для метода adminSetUserPassword

...