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)}
}
}