У меня есть пользовательский интерфейс для регистрации и пения, поэтому я не использую AWSAuthUI
Мне удалось успешно настроить регистрацию, следуя документации, и я могу видеть подтвержденных пользователей в пуле пользователей.
У меня проблема с доступом к DynamoDB (проблема аутентификации)
Ниже указан код, который я использую для входа в систему
@IBAction func btn_login(_ sender: UIButton) {
ActivityIndicator.start()
if(txt_soul_id.text != "" && txt_pwd.text != ""){
let emailTextField = txt_soul_id.text!
let passwordTextField = txt_pwd.text!
let len = passwordTextField.count
if(len > 7){
if(Validations.isValidPassword(password: passwordTextField)){
let mypool = configuration.pool?.getUser(emailTextField)
mypool?.getSession(emailTextField, password: passwordTextField, validationData: nil).continueWith(block: { (task) in
if(task.error != nil){
ActivityIndicator.stop()
Alerts.normal_display(msg_title: "", msg_desc: (task.error?._userInfo!["message"])!, action_title: "OK", myVC: self)
}else{
ActivityIndicator.stop()
DispatchQueue.main.async {
let vc = self.storyboard?.instantiateViewController(withIdentifier: "EditProfileVC_sid") as! EditProfileVC
self.navigationController?.pushViewController(vc, animated: true)
}
}
return nil
})
}else{
ActivityIndicator.stop()
Alerts.normal_display(msg_title: "", msg_desc: "Password must require number, special character, uppercase and lowercase letter.", action_title: "Ok", myVC: self)
}
}else{
ActivityIndicator.stop()
Alerts.normal_display(msg_title: "Minimum 8 Character", msg_desc: "Your password must be at least 8 characters", action_title: "Ok", myVC: self)
}
}else{
ActivityIndicator.stop()
Alerts.normal_display(msg_title: "Required", msg_desc: "Username and password required", action_title: "OK", myVC: self)
}
}
При успешном входе в систему я пытаюсь сохранить созданную мной модель DynamodB
@IBAction func save_profile(_ sender: UIButton) {
let dynamoDbObjectMapper = AWSDynamoDBObjectMapper.default()
// Create data object using data models you downloaded from Mobile Hub
let userItem: User = User()
var stype : [String]? = nil
stype?.append("soltype1")
userItem._userId = AWSIdentityManager.default().identityId
//userItem._soultypes = stype
userItem._about = "About Me"
userItem._bday = "19-19-1991"
userItem._culture = "Jain"
userItem._email = "abc@gmail.com"
userItem._mobile = 1234567890
userItem._mobilePrefix = "+32"
userItem._soulid = "mysid"
//Save a new item
dynamoDbObjectMapper.save(userItem, completionHandler: {
(error: Error?) -> Void in
if let error = error {
print("Amazon DynamoDB Save Error: \(error)")
return
}
print("An item was saved.")
})
}
userItem._userId равен nil
Выдает ошибку nil для identityId вместе с ошибкой сохранения Amazono DynamoDB: Ошибка Domain = com.amazonaws.AWSCognitoIdentityErrorDomain Code = 8 "(null)" UserInfo = {__ type = NotAuthorizedException, message = Неавторизованный доступ не поддерживается для этого пула идентификаторов. }