我很抱歉这样做,但我没有足够的声誉来评论这个问题:如何将我的移动集线器与我现有的 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);
所以我只想说我真的不想在注册时要求电话号码,我认为这将是最简单的方法,但如果有人知道我错过了什么或有更好的途径让我下去,请让我知道。谢谢各位!