使用 aws amplify cognito 的自定义身份验证流程

Custom Authentication flow with aws amplify cognito

我想在 aws amplify cognito 服务中创建自定义注册身份验证流程

我有什么

1.Enter 用户名

2.Enter 密码

3.Verify 用户有 Otp(Phone 号码)/确认码(电子邮件)

我想要什么

1.Enter 用户名

2.EnterOtp/Confirmation代码

3.Enter 密码

如何使用 aws amplify cognito 服务实现此注册流程,否则最好的服务或方法是什么

您想要的场景可以使用自定义身份验证流程来实现,但这有一些注意事项:

  • 您不能将 Cognito 的 MFA 与自定义身份验证流程一起使用。这是不可能的。我在 AWS 上有一个企业账户,并向我们的代表提出了这个问题,但它甚至不在他们的积压中。这意味着您需要实现自己的 SMS OTP 或使用 twilio 的 API ($).
  • cognito 托管 UI 不支持自定义身份验证,您需要自己重做所有 UI(考虑重置密码链接等,而不仅仅是登录)。
  • 由于您将进行 API 调用,而不是使用托管的 UI,您将失去所有 oauth 好处,没有代码授权或 oauth 范围。这意味着您需要做大量额外的工作才能使其在移动身份验证会话中安全地工作,本质上您将需要以某种方式使用 PKCE 重新实现代码授权。

如果你想这样做,你可以使用自定义身份验证流程,它非常复杂,但这篇文章在我这样做时帮助了我:https://dev.to/duarten/passwordless-authentication-with-cognito-13c

我的建议是尽可能坚持使用 Hosted UI,或者不要使用 Cognito。 Cognito 的功能集比其他身份验证提供商少很多(但更便宜)。