Amazon web services 如何让Amazon Cognito托管的UI提示TOTP?
我假设我会根据以下内容得到提示: 如果您的应用程序使用Amazon Cognito托管的用户界面登录用户,则该用户界面将显示第二个页面,供您的用户在提交用户名和密码后输入TOTP密码 在用户池的“MFA和验证”部分,我检查了以下内容:Amazon web services 如何让Amazon Cognito托管的UI提示TOTP?,amazon-web-services,amazon-cognito,Amazon Web Services,Amazon Cognito,我假设我会根据以下内容得到提示: 如果您的应用程序使用Amazon Cognito托管的用户界面登录用户,则该用户界面将显示第二个页面,供您的用户在提交用户名和密码后输入TOTP密码 在用户池的“MFA和验证”部分,我检查了以下内容: 是否要启用多因素身份验证(MFA)? 可选的 您希望启用第二个因素是什么? 基于时间的一次性密码 我添加了一个经过验证的测试用户 从那以后,我根据文档找到了两个,并确认我在调用AssociateSoftwareToken的响应中获得了密码,在Verif
- 是否要启用多因素身份验证(MFA)?
- 可选的
- 您希望启用第二个因素是什么?
- 基于时间的一次性密码
但是,我在提交用户名和密码后立即被重定向,并且没有输入TOTP的提示。在为测试帐户设置TOTP后,我可以通过显式调用来实现这一点。我认为关联和验证TOTP会自动改变Cognito关于用户身份验证流的行为,这是错误的。它还要求我告诉Cognito为用户启用并使用TOTP 我最初困惑的症结在于,生成并关联一个软件令牌来为用户生成OTP并不能为用户启用它。还需要调用
SetUserMFAPreference
为用户启用它。一旦完成,它就如预期的那样工作了。例如,要启用软件MFA并将其设置为首选:
{
"AccessToken": "xyz123",
"SoftwareTokenMfaSettings": {
"Enabled": true,
"PreferredMfa": true
}
}
还有一种方法可以达到同样的效果。对于其他偶然发现这一点但仍然没有得到TOTP提示的人,您可能还需要清除cookies。即使您的池没有设置为记住用户设备,在不清除cookies的情况下,您仍然可以在没有TOTP的情况下登录 有道理,既然您将MFA设置为可选,请您更清楚一点好吗?您到底调用了什么?有关清除TOTP cookie的一些有用示例,请参阅。我设置了到期日并从浏览器中删除了所有cookie,但它不起作用。@SunilDevre-我只是从浏览器中删除了cookie,它对我起作用。听起来你的问题可能在别处。。。