我一直在开发一个使用 AWS Mobile Hub 作为后端的 iOS 应用程序,但我似乎不知道如何为用户登录功能实现自定义身份验证 UI。更好的是,我找不到任何文档至少可以暗示我应该如何做。我发现的唯一一点资源是 AWS 提供的 Auth UI 功能,这在我的情况下并不理想。(我应该提一下,我对 swift 上的 AWS 开发有点陌生)
我的想法是,当您在 Mobile Hub 上启动新项目时,我可以使用提供awsconfiguration.json
给您的内容,然后将其集成到 UIViewController 类中以用于身份验证,而无需使用 AuthUI 库。
这是我尝试过的:
@IBOutlet weak var emailField: UITextField!
@IBOutlet weak var passwordField: UITextField!
var passwordAuthenticationCompletion: AWSTaskCompletionSource<AWSCognitoIdentityPasswordAuthenticationDetails>!
func getDetails(_ authenticationInput: AWSCognitoIdentityPasswordAuthenticationInput, passwordAuthenticationCompletionSource: AWSTaskCompletionSource<AWSCognitoIdentityPasswordAuthenticationDetails>) {
passwordAuthenticationCompletion = passwordAuthenticationCompletionSource
}
@IBAction func logInTapped(_ sender: Any) {
var emailText = emailField.text!
var passwordText = passwordField.text!
passwordAuthenticationCompletion.set(result: AWSCognitoIdentityPasswordAuthenticationDetails.init(username: emailText, password: passwordText))
}
func didCompleteStepWithError(_ error: Error?) {
if error != nil {
let alertController = UIAlertController(title: error?.localizedDescription, message: "error", preferredStyle: UIAlertControllerStyle.alert)
alertController.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.default, handler: nil))
self.present(alertController, animated: true, completion: nil)
} else {
print("logged in")
}
}
passwordAuthenticationCompletion.set()
当被调用时,我返回 nil 。有人可以告诉我我做错了什么,或者可能指出我正确的方向吗?
谢谢。