Как исправить ошибку во время выполнения кода «domainnsposixerrordomain code13 denied» в коде AWSCognito? - PullRequest
1 голос
/ 26 мая 2019

Я получаю сообщение об ошибке во время выполнения:

[NetworkInfo] Ошибка запроса мощности сигнала: Ошибка Домен = Код NSPOSIXErrorDomain = 13 «Отказано в доступе», дескриптор:

в моем коде, где объявлена ​​переменная "задача".Я пометил строку, которая генерирует ошибку, комментарием.

let serviceConfiguration: AWSServiceConfiguration = AWSServiceConfiguration(region: .USEast1, credentialsProvider: nil)

//create a pool
let configuration: AWSCognitoIdentityUserPoolConfiguration = AWSCognitoIdentityUserPoolConfiguration(clientId: "6n3mb6nu0ls9ttfapkl69uuvd3", clientSecret: "7vlgp2ip3ihov4on7n0v4sti88sj6tfsobqlop6qu5t3db07bo6", poolId: "us-east-1_d0Y5gS66r")

AWSCognitoIdentityUserPool.register(with: serviceConfiguration, userPoolConfiguration: configuration, forKey: "AlarmMusic")
pool = AWSCognitoIdentityUserPool(forKey: "AlarmMusic")

let alertMessage = "Please register in order to be able to use this app:"

let alertController = UIAlertController(title: "Register", message: alertMessage, preferredStyle: .alert)

alertController.addTextField(configurationHandler: nil)
alertController.addTextField(configurationHandler: nil)
alertController.addTextField(configurationHandler: nil)

let actionOK = UIAlertAction(title: "OK", style: .cancel) {
    action in

    var attributes = [AWSCognitoIdentityUserAttributeType]()

    let email: AWSCognitoIdentityUserAttributeType = AWSCognitoIdentityUserAttributeType(name: "email", value: alertController.textFields?[2].text ?? "olea.gnolaum@gmail.com")

    attributes.append(email)

    let task: AWSTask<AWSCognitoIdentityUserPoolSignUpResponse> = self.pool.signUp(alertController.textFields?[0].text ?? "dbrower", password: alertController.textFields?[1].text ?? "Password@1989", userAttributes: attributes, validationData: nil).continueOnSuccessWith( block: {_ in return nil }) as! AWSTask<AWSCognitoIdentityUserPoolSignUpResponse> // ERROR OCCURS HERE!

    print("task=", task)

    let signUpResponse: AWSCognitoIdentityUserPoolSignUpResponse? = task.result

    print("signUpResponse=", signUpResponse as Any)

    let user: AWSCognitoIdentityUser? = signUpResponse?.user

    print("user=", user as Any)

}

alertController.addAction(actionOK)

self.present(alertController, animated: true, completion: nil)

Вот результаты в окне отладки операторов печати:

task =

signUpResponse = nil

user = nil

Я проверил свой пул пользователей в AWS Cognito Console.Все проверено.Я предоставил всю необходимую информацию для пула пользователей.

Вот снимок экрана пула:

enter image description here

В чем причинаэта ошибка, и на что мне нужно обратить внимание, чтобы исправить ее?

1 Ответ

0 голосов
/ 26 мая 2019

Вот небольшой пример того, как получить пользователя из Cognito.

private func registerNewUser() {
  let userPool = ...
  let email = ...
  let password = ...
  let emailAttribute = AWSCognitoIdentityUserAttributeType(name: "email", value: email)
  let attributes:[AWSCognitoIdentityUserAttributeType] = [emailAttribute]

  userPool.signUp(email, password: password, userAttributes: attributes, validationData: nil).continueWith { (response) -> Any? in
    if response.error != nil {
      DispatchQueue.main.async {
        let alert = UIAlertController(title: "Error", message: (response.error! as NSError).userInfo["message"] as? String, preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: "OK", style: .default, handler:nil))
        self.present(alert, animated: true, completion: nil)
      }
    } else {
      self.user = response.result!.user
    }
    return nil
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...