【发布时间】:2020-04-23 00:13:33
【问题描述】:
我正在使用 aws-amplify 包与 Cognito 集成以进行身份验证。我正在为注册创建自定义表单。为此,我想添加一个客户端验证。
aws-amplify 有什么方法可以进行客户端密码验证吗?当用户离开密码字段时,我想向用户显示一条错误消息。
【问题讨论】:
标签: reactjs amazon-cognito aws-amplify
我正在使用 aws-amplify 包与 Cognito 集成以进行身份验证。我正在为注册创建自定义表单。为此,我想添加一个客户端验证。
aws-amplify 有什么方法可以进行客户端密码验证吗?当用户离开密码字段时,我想向用户显示一条错误消息。
【问题讨论】:
标签: reactjs amazon-cognito aws-amplify
目前似乎没有办法通过 Amplify 做到这一点。您可以看到this issue,他们在其中简要介绍了它,并提出了一个非常好的观点:虽然 Amplify 不进行验证,但 Cognito 可以:
如果这是您想自己解决的问题,您可以先查看 Amazon Cognito API 参考,特别是 DescribeUserPool 操作。它使您可以访问用户池的密码策略。也许您可以在构建时调用此操作,将策略保存为 json,您可以将其包含在前端代码中并在运行时进行验证。
这一切都假设您真的不想使用Cognito hosted UI 进行登录/注册,它将根据这些设置为您处理验证(并且只需要很少的工作)。
【讨论】:
您可以创建完全独立于 Amplify 的客户端验证。由于您知道为创建密码而配置的挑战,因此您可以简单地将其放入自定义表单中。
例如,您可以使用 html 输入属性,如 minLength 和 pattern,或使用 javascript。
<input
autoComplete="new-password"
type="password"
minLength="6"
pattern="^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$"
/>
【讨论】: