gpt4 book ai didi

ios - 如何使用 Swift 中的 Cognito 用户池注册用户并验证他们的电话号码?

转载 作者:行者123 更新时间:2023-11-29 00:48:08 25 4
gpt4 key购买 nike

到目前为止,我只能在 objective-c 的 AWS 文档中找到如何执行此操作,而不是 swift。我正在使用以下代码快速在用户池中成功创建用户:

let userPool = AWSCognitoIdentityUserPool(forKey: "myApp")

var name = AWSCognitoIdentityUserAttributeType()
name.name = "name"
name.value = nameEntry.text

var phone = AWSCognitoIdentityUserAttributeType()
phone.name = "phone_number"
phone.value = "+1" + phoneNumberEntry.text!

var email = AWSCognitoIdentityUserAttributeType()
email.name = "email"
email.value = emailEntry.text

userPool.signUp("goats", password: passwordEntry.text!, userAttributes: [name, phone, email], validationData: nil)

执行上述代码会按预期在 Cognito 用户池中创建一个用户。

此外,上述代码成功向提供的电话号码发送验证码。但是,我一直无法成功将此验证码传回 AWS 并验证电话号码。在用户池中创建用户后,我尝试了以下两行,但都没有将电话号码更改为正在验证:

user.verifyAttribute("phone_number", code: verificationEntry.text!)
user.confirmSignUp(verificationEntry.text!)

在用户注册后,我将用户变量设置为以下值:

self.user = userPool.getUser()

这些都不起作用,AWS 的 objective c 文档也没有帮助。关于如何验证用户电话号码的任何想法?谢谢

最佳答案

您应该使用 userPool.getUser(username: String),而不是 userPool.getUser()

在你的情况下:

self.user = userPool.getUser(nameEntry.text)

否则,您可能会遇到以下错误。

[Debug] AWSURLResponseSerialization.m line:63 | -[AWSJSONResponseSerializer responseObjectForResponse:originalRequest:currentRequest:data:error:] | Response body:
{"__type":"InvalidParameterException","message":"2 validation errors detected: Value at 'username' failed to satisfy constraint: Member must have length greater than or equal to 1; Value at 'username' failed to satisfy constraint: Member must satisfy regular expression pattern: [\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+"}

关于ios - 如何使用 Swift 中的 Cognito 用户池注册用户并验证他们的电话号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38417215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com