3

AWS Mobile Hub をバックエンドとして使用する iOS アプリケーションに取り組んできましたが、ユーザーサインイン機能用のカスタム認証 UI を実装する方法がわかりません。さらに良いことに、少なくとも私がそれをどのように行うべきかについてのヒントを与えるドキュメントが見つかりません。私が見つけた唯一のリソースは、AWS が提供する Auth UI 機能でした。これは、私の状況では理想的ではありません。(私は AWS での迅速な開発に少し慣れていないことを言及する必要があります)

アイデアはawsconfiguration.json、Mobile Hub で新しいプロジェクトを起動するときに提供されたものを使用し、それを 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 が返されます。誰かが私が間違っていることを教えてくれますか、それとも正しい方向に向けてくれますか?

ありがとう。

4

1 に答える 1