AWS Cognito默认需邮箱但注册表单无此字段的解决方法咨询
解决AWS Amplify注册界面缺失邮箱字段且报错的问题
方法1:重新配置Auth资源(推荐)
- 执行命令修改已有的Auth配置:
amplify update auth - 在交互选项中选择
Manual configuration(手动配置),进入用户池属性设置环节:- 勾选
email作为必填属性,同时设置email为允许的登录标识之一
- 勾选
- 配置完成后推送更新:
amplify push --y
方法2:自定义前端注册UI组件
若不想改动后端配置,可手动补全前端注册表单的邮箱字段:
- 找到项目中使用Amplify认证组件的代码,自定义
SignUp表单:import { SignUp } from '@aws-amplify/ui-react'; function CustomSignUp() { return ( <SignUp formFields={[ { type: 'username', label: '用户名', required: true }, { type: 'email', label: '邮箱', required: true }, { type: 'password', label: '密码', required: true }, { type: 'confirm_password', label: '确认密码', required: true }, ]} /> ); } - 将原有默认注册组件替换为这个自定义组件,或在
withAuthenticator中指定使用该组件。
问题根源
默认配置下,Amplify Auth的用户池可能强制要求email属性,但前端默认UI未包含该字段,导致提交时不符合schema校验规则。重新配置后端可从根源对齐规则,自定义UI则是补全前端字段适配后端要求。
内容的提问来源于stack exchange,提问作者kat
相关产品推荐
相关产品推荐

