使用 aws amplify cognito 的自定义身份验证流程
Posted
技术标签:
【中文标题】使用 aws amplify cognito 的自定义身份验证流程【英文标题】:Custom Authentication flow with aws amplify cognito 【发布时间】:2021-03-23 05:25:53 【问题描述】:我想在 aws amplify cognito 服务中创建自定义注册身份验证流程
我有什么
1.输入用户名
2.输入密码
3.使用 Otp(电话号码)/确认码(电子邮件)验证用户
我想要什么
1.输入用户名
2.输入 Otp/确认码
3.输入密码
如何使用 aws amplify cognito 服务实现此注册流程,否则最好的服务或方法是什么
【问题讨论】:
【参考方案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 的功能集比其他身份验证提供者少很多(但更便宜)。
【讨论】:
以上是关于使用 aws amplify cognito 的自定义身份验证流程的主要内容,如果未能解决你的问题,请参考以下文章
使用 AWS Amplify 和 AWS Cognito 进行数据特定授权
什么是用于在 Cognito 中登录的 AWS 开发工具包库(从后端不使用 Amplify)?
AWS-amplify 在请求中包含 cognito Authorization 标头
AuthError - 错误:未正确配置 Amplify / AWS cognito,React JS