Я пытаюсь явно войти в AWS Cognito на iOS в Swift.
В большинстве примеров показан делегированный подход к отображению знака в пользовательском интерфейсе при вызове user.getDetails, но я хотел бы простопоказать мой вход в пользовательский интерфейс и явный вход с помощью user.getSession.
Мой пул пользователей и клиент приложения настроены в консоли AWS.
В коде задана конфигурация службы по умолчанию.
var serviceManager = AWSServiceManager.default()!
var serviceConfiguration = AWSServiceConfiguration(region: .APNortheast1, credentialsProvider: nil)
serviceManager.defaultServiceConfiguration = serviceConfiguration
Конфигурация пула настроена в коде с помощью моих клиентов, clientsecret и poolid.
let poolConfiguration = AWSCognitoIdentityUserPoolConfiguration(clientId: "MY_ID", clientSecret: "MY_SECRET", poolId: "POOL_ID")
AWSCognitoIdentityUserPool.register(with: AWSManager.shared().serviceConfiguration, userPoolConfiguration: poolConfiguration, forKey: "UserPool")
userPool = AWSCognitoIdentityUserPool(forKey: "UserPool")
Однако при попытке вызвать сеанс get результат задачи всегда равен nil.
let cognitoUser = AuthenticationManager.shared().userPool.currentUser()
let getSessionTask = cognitoUser?.getSession(email, password: password, validationData: nil)
getSessionTask?.continueWith(block: { (task) -> Any? in
print("result: \(String(describing: task.result))")
if let result = task.result {
print("user signed in? \(cognitoUser?.isSignedIn)")
}
return nil
}, cancellationToken: nil)
Как правильно войти в систему и проверить, работает ли знак или была ли ошибка, например, неверные учетные данные?