【问题标题】:Custom Authentication flow with aws amplify cognito使用 aws amplify cognito 的自定义身份验证流程
【发布时间】:2021-03-23 05:25:53
【问题描述】:
我想在 aws amplify cognito 服务中创建自定义注册身份验证流程
我有什么
1.输入用户名
2.输入密码
3.使用 Otp(电话号码)/确认码(电子邮件)验证用户
我想要什么
1.输入用户名
2.输入 Otp/确认码
3.输入密码
如何使用 aws amplify cognito 服务实现此注册流程,否则最好的服务或方法是什么
【问题讨论】:
标签:
react-native
authentication
amazon-cognito
aws-amplify
federated-identity
【解决方案1】:
您想要的场景可以使用自定义身份验证流程来完成,但这有一些警告:
- 您不能将 Cognito 的 MFA 与自定义身份验证流程一起使用。这是不可能的。我在 AWS 有一个企业账户,并且已经向我们的代表提出了这个问题,而且他们甚至没有在他们的积压中。这意味着您需要实现自己的 SMS OTP 或使用 twilio 的 API ($)。
- cognito 托管的 UI 不支持自定义身份验证,您需要自己重做所有 UI(考虑重置密码链接等,而不仅仅是登录)。
- 由于您将进行 API 调用,而不是使用托管 UI,您将失去所有 oauth 优势,没有代码授权或 oauth 范围。这意味着您需要做大量额外工作才能使其在移动身份验证会话中安全运行,本质上您需要以某种方式使用 PKCE 重新实现代码授权。
如果你想这样做,你可以使用自定义身份验证流程,它非常复杂,但这里有一篇文章帮助了我:https://dev.to/duarten/passwordless-authentication-with-cognito-13c
如果可能,我的建议是坚持使用托管 UI,或者不要使用 Cognito。 Cognito 的功能集比其他身份验证提供者少很多(但更便宜)。