我很抱歉这样做,但我没有足够的声誉来评论这个问题: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
中看到的内容:
这是我在运行此代码时得到的结果:
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);
足以说我真的不希望要求注册电话号码,我认为这是最简单的方式,但如果有人知道我错过了什么或者有更好的路径让我下来,请告诉我。谢谢大家!