【发布时间】:2019-06-07 11:35:05
【问题描述】:
我目前在实施 AWSMobileClient 注册功能时遇到此错误。除了更改属性以适应我的用户池属性要求之外,我还没有真正更改 AWS 页面中描述如何实现它的代码示例。
首先在 viewDidLoad 中,我像这样初始化移动客户端:
AWSMobileClient.sharedInstance().initialize { (userState, error) in
if let userState = userState {
print("UserState: \(userState.rawValue)")
} else if let error = error {
print("error: \(error.localizedDescription)")
}
}
然后我就有了注册的功能。这就是代码的样子(我将它封装在一个名为 signUpUser 的函数中):
AWSMobileClient.sharedInstance().signUp(username: userEmail,
password: userPass,
userAttributes: ["email":userEmail, "given_name":userFirstName, "family_name": userLastName, "custom:school":userSchool]) { (signUpResult, error) in
if let signUpResult = signUpResult {
switch(signUpResult.signUpConfirmationState) {
case .confirmed:
print("User is signed up and confirmed.")
case .unconfirmed:
print("User is not confirmed and needs verification via \(signUpResult.codeDeliveryDetails!.deliveryMedium) sent at \(signUpResult.codeDeliveryDetails!.destination!)")
case .unknown:
print("Unexpected case")
}
} else if let error = error {
if let error = error as? AWSMobileClientError {
switch(error) {
case .usernameExists(let message):
print(message)
default:
break
}
}
print("\(error.localizedDescription)")
}
当我在 iPhone 上运行应用程序时,我会在单击“注册按钮”时调用此函数。在调试窗口中,我收到以下错误:
The operation couldn’t be completed. (AWSMobileClient.AWSMobileClientError error 20.)
这是 Xcode 控制台中显示的唯一信息。有谁知道如何调试或修复此问题?
编辑:我不确定是什么问题导致了这个错误。我开始了一个新项目,建立了一个新的 cognito 池和后端服务,并从这个项目中移植了代码,结果一切正常。该错误可能是由于错误地设置了用户池,或者可能是不允许未经授权访问注册功能(不确定我是否将其设置为“否”)。
【问题讨论】:
-
您使用的是什么版本的 SDK?更新到最新版本,然后重试。参考:github.com/aws-amplify/aws-sdk-ios/issues/1147
-
感谢您的参考。原来我在 2.8.2,所以我更新到 2.8.3(最新的)。但是,我仍然遇到相同的问题,即 signUp 函数进入错误 == 错误块,导致相同的 AWSMobileClientError。
-
嘿@Campbell 我遇到了同样的问题,你解决了吗?
标签: ios swift xcode amazon-web-services amazon-cognito