如何将我的移动中心与我现有的cognito用户池相关联? (第2部分)

时间:2018-03-26 00:45:03

标签: amazon-web-services react-native amazon-cognito aws-cognito aws-amplify

我很抱歉这样做,但我没有足够的声誉来评论这个问题:How to link my mobile hub with my existing cognito user pool?,并且所提供的答案并没有解决我的问题。

为了更好地解释一下,我正在使用针对AWS Mobile Hub的React Native构建。我已经成功了#34;经过身份验证,但Amplify继续使用预配置(自动集成)的用户池。这要求用户在注册过程中输入电话号码,但我们没有该字段进行注册。

我已将Cognito用户池与#34;身份验证提供商"下的预配置(自动集成)身份池相关联。正如@ andrew-c在上面的问题中所建议的那样。我编辑了'aws_user_pools_id'属性指向我的自定义用户池,如上面的问题所示。

当我console.log()用户池属性(我传递到我的Amplify配置中)时,它会为我提供自定义用户池。

当我console.log()来自身份验证成功的响应时,我也会看到自定义用户池。但是,用户不断保存,并根据预先配置(自动集成)的用户池的模型进行身份验证(即,phone_number是必需的)。即这是我的用户在注册后出现的地方。

有谁知道我错过了什么?

这是我在console中看到的内容:

Custom User Pool

这是我在运行此代码时得到的结果:

  const attributes = {
    name: this.state.name,
    birthdate: this.state.birthdate,
    phone_number: '+011234567890',
  }
  try {
      console.log(Auth.signUp);
      this.setState({ loading: true });
      const response = await Auth.signUp({
        username: this.state.email,
        password: this.state.password,
        attributes,
        validationData: [],
      });
      console.log(`SignUp::onSignUp(): Response#1 = ${JSON.stringify(response, null, 2)}`);
      if (response.userConfirmed === false) {
          this.setState({ authData: response, modalShowing: true, loading: false });
      } else {
          this.onAuthStateChange('default', { username: response.username });
      }
  } catch (err) {
      console.log(`SignUp::onSignUp(): Error ${JSON.stringify(err, null, 2)}`);
      this.setState({ error: err.message, loading: false });
  }

相关进口商品:

import Amplify, { Auth } from 'aws-amplify';
import aws_exports from '../../aws-exports';
Amplify.configure(aws_exports);

足以说我真的不希望要求注册电话号码,我认为这是最简单的方式,但如果有人知道我错过了什么或者有更好的路径让我下来,请告诉我。谢谢大家!

0 个答案:

没有答案