Amplify CLI 身份验证与 Cognito 用户池目前有两种主要模式,使用用户名登录或使用电子邮件登录。在前一种情况下,电子邮件唯一性作为必需的用户属性没有被强制执行。
Cognito 服务本身支持“也允许使用经过验证的电子邮件地址登录”选项(AWS 控制台,用户池属性部分),但它只能在创建用户池时设置(即以后不能修改 - 复选框被禁用)。在允许用户使用用户名或电子邮件进行身份验证的同时,是否可以在用户池中强制执行不重复的电子邮件?
总而言之,我的用例需要:
- 通过 Amplify 注册用户时,在 Cognito 级别验证/强制执行电子邮件属性的唯一性
Auth.SignUp
; - 保留基于用户名的登录,但也允许用户使用他们的电子邮件登录(即,
Auth.SignIn
使用电子邮件或用户名作为用户名参数提供)。