更改Cognito用户池/ AWS放大;导致注册问题

时间:2019-06-16 07:22:32

标签: ios swift amazon-web-services amazon-cognito aws-amplify

我正在使用AWS-Amplify(和Cognito)在iOS应用中处理一些SignUp / SignIn流程。

一切正常,但是后来我决定在注册时需要更多信息。 即:名字,名字,家庭名称。

这里是用来进行身份验证的函数:

func showSignIn() {
    AWSAuthUIViewController
        .presentViewController(with: self.navigationController!,
                               configuration: nil,
                               completionHandler: {
                                (provider: AWSSignInProvider, error: Error?) in
                                if error != nil {
                                    print("Error occurred: \(String(describing: error))")
                                } else {
                                    print("Identity provider: \(provider.identityProviderName)")
                                }
        })
}

完成必要的操作(使用amplify-cli)之后,删除旧的用户池并创建一个新的用户池。我重新编译了我的iOS应用并启动了它。

可以,但是现在我要注册用户时,会收到以下消息:

enter image description here

消息内容不足为奇,因为现在我需要指定的字段。 但是问题是,我在用户界面中看不到用于输入这些新字段的空间。

我是否忘记做一些事情以便可以对UI进行足够的更新? 还是我想通过修改上面的功能来做一些事情(手动更新UI)?如果是,那么进行更改的方式是什么?

这是我进行放大的第一步,我很可能会犯一些基本错误。

2 个答案:

答案 0 :(得分:1)

我仅将AWS Amplify与JavaScript一起使用,但是在JS中,您确实需要手动更新UI。

这是JS代码以及我必须手动调用的方式,也许有帮助。

handleSignUpPressed = async ({
  emailAddress = '',
  firstName = '',
  lastName = '',
  password = '',
  phoneNumber = '',
  wantsToImproveApp = true,
} = {}) => {
  if (emailAddress && firstName && lastName && password && phoneNumber) {
    try {
      const res = await Auth.signUp({
        username: emailAddress,
        password,
        attributes: {
          email: emailAddress,
          name: firstName,
          family_name: lastName,
          phone_number: phoneNumber,
        },
      });
      console.log('success', res);
      this.props.navigation.push('VerificationScreen', {
        username: res.username,
      });
    } catch (err) {
      console.log(err);
    }
  }
};

答案 1 :(得分:0)

您可以使用AWSMobileClient在幕后显示使用AWSAuthUIViewController的嵌入式Auth https://aws-amplify.github.io/docs/ios/authentication#user-attributes

我没有看到使用SignInUIOptions自定义您的用例的方法。还有一个现有的RFC用于改善AWSMobileClient和嵌入式UI的可用性:https://github.com/aws-amplify/aws-sdk-ios/issues/1158

如果滚动自己的注册/登录流程,则可以将用户属性传递到AWSMobileClient.signUphttps://aws-amplify.github.io/docs/ios/authentication#user-attributes