Ios AWS识别身份多因素身份验证永不返回

Ios AWS识别身份多因素身份验证永不返回,ios,swift,amazon-cognito,multi-factor-authentication,Ios,Swift,Amazon Cognito,Multi Factor Authentication,我以这种方式实现了来自的示例: import Foundation import UIKit import AWSMobileClient import AWSCognitoIdentityProvider class MFAModalViewController: UIViewController { @IBOutlet weak var messageLabel: UILabel! @IBOutlet var backgroundView: UIView! @IB

我以这种方式实现了来自的示例:

import Foundation
import UIKit
import AWSMobileClient
import AWSCognitoIdentityProvider

class MFAModalViewController: UIViewController {

    @IBOutlet weak var messageLabel: UILabel!
    @IBOutlet var backgroundView: UIView!
    @IBOutlet weak var boxView: UIView!
    @IBOutlet weak var mfaTextField: UITextField!

    public var message: String?
    var mfaCompletionSource: AWSTaskCompletionSource<NSString>?

    @IBAction func mfaTextFieldChanged(_ sender: Any) {
        if let mfaCode = mfaTextField.text, mfaCode.count == 6 {

            self.mfaCompletionSource?.set(result: NSString(string: mfaCode))
        }
    }

    override func viewDidLoad()
    {
        super.viewDidLoad()

        if let message = message {
            messageLabel.text = message
        }
    }
}

extension MFAModalViewController: AWSCognitoIdentityMultiFactorAuthentication {
    func getCode(_ authenticationInput: AWSCognitoIdentityMultifactorAuthenticationInput, mfaCodeCompletionSource: AWSTaskCompletionSource<NSString>) {
        hud.dismiss()

        self.mfaCompletionSource = mfaCodeCompletionSource
    }

    func didCompleteMultifactorAuthenticationStepWithError(_ error: Error?) {
        ...
    }
}
<代码>导入基础 导入UIKit 导入AWSMobileClient 导入AWSCognitoIdentityProvider 类MFAModalViewController:UIViewController{ @IBVAR弱消息标签:UILabel! @IBVAR背景视图:UIView! @ibvar-boxView:UIView! @IBOutlet弱var mfaTextField:UITextField! 公共var消息:字符串? var mfaCompletionSource:AWSTaskCompletionSource? @iAction func mfaTextFieldChanged(u发件人:任意){ 如果让mfaCode=mfaTextField.text,则mfaCode.count==6{ self.mfaCompletionSource?.set(结果:NSString(字符串:mfaCode)) } } 重写func viewDidLoad() { super.viewDidLoad() 如果let message=message{ messageLabel.text=消息 } } } 扩展MFAMODALVIEW控制器:AWSCOgnitoIdentity MultifactorAuthentication{ func getCode(uAuthenticationInput:AWS认知身份MultifactorAuthenticationInput,mfaCodeCompletionSource:AWSTaskCompletionSource){ 休会 self.mfaCompletionSource=mfaCodeCompletionSource } func didCompleteMultifactorAuthenticationStepWithError(uu错误:错误?){ ... } } 但是,在将AWSTASKCompletionSource设置为输入的MFA代码后,我从未收到对AWSCOgnitiToIdentity MultifactorAuthentication委托中的didCompleteMultifactorAuthenticationStepWithError方法的回调


关于我的遗漏有什么想法吗?

好的,解决方法是不要使用AWSCOgnitoIdentity,而是使用AWSMobileClient。我错过了MFA验证的方法:

AWSMobileClient.sharedInstance().confirmSignIn(challengeResponse: mfaCode) { (signInResult, error) in

    DispatchQueue.main.async {self.handleConfirmation(signInResult: signInResult, error: error)}
     }
}