0

我很抱歉这样做,但我没有足够的声誉来评论这个问题:如何将我的移动集线器与我现有的 cognito 用户池链接?,并且提供的答案并没有完全解决我的问题。

为了更好地解释,我使用了适用于 AWS Mobile Hub 的 React Native 构建。我已“成功”通过身份验证,但Amplify继续使用预配置(自动集成)的用户池。这要求用户在注册过程中输入电话号码,但我们没有用于注册的字段。

我已将我的 Cognito 用户池链接到“身份验证提供程序”下的预配置(自动集成)身份池,如上述问题中所建议的 @andrew-c。如上述问题中所建议的,我编辑了“aws_user_pools_id”属性以指向我的自定义用户池。

当我console.log()将用户池属性传递给我的Amplify配置时,它给了我我的自定义用户池。

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

有谁知道我错过了什么?

这是我在 中看到的console

自定义用户池

这就是我在运行这段代码时得到的:

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

所以我只想说我真的不想在注册时要求电话号码,我认为这将是最简单的方法,但如果有人知道我错过了什么或有更好的途径让我下去,请让我知道。谢谢各位!

4

0 回答 0