Aws lambda 带SMS MFA的无密码Cognito
首先,我们看到:Aws lambda 带SMS MFA的无密码Cognito,aws-lambda,amazon-cognito,aws-amplify,Aws Lambda,Amazon Cognito,Aws Amplify,首先,我们看到: :此解决方案似乎设计过度,在dynamodb中生成、存储、引用用户密码或手动实现SMS MFA 当然,这些都是很好的例子Buggy@Github超过: 然而,到目前为止,我看到的所有无密码流似乎也使用自定义身份验证,如captcha。我正在寻找使用AWS的内置短信MFA,否则一直为我工作的伟大 使用: 放大 反应(香草) 有效的东西: 使用电话号码和密码以及确认码登录。也就是说,这个: const user = await Auth.signIn(this.st
- :此解决方案似乎设计过度,在dynamodb中生成、存储、引用用户密码或手动实现SMS MFA
- 放大
- 反应(香草)
- 使用电话号码和密码以及确认码登录。也就是说,这个:
const user = await Auth.signIn(this.state.phoneNumber, this.state.password) ...then... const data = await Auth.confirmSignIn(this.state.user, this.state.confirmationCode, 'SMS_MFA');
- 无密码登录,无需任何MFA,使用预验证Lambda触发器(显然不是可行的解决方案):
const user = await Auth.signIn(this.state.phoneNumber)
放大给出(拼写错误)错误消息:
null failed with error Generate callenges lambda cannot be called..
也就是说,没有为用户池设置lambda触发器
如果我设置的defineAuthChallenge触发器包含以下内容:
event.response.issueTokens = true;
event.response.failAuthentication = false;
当然,它只是让我在没有MFA的情况下登录。但是,如果我将issueTokens
设置为false,则身份验证流将失败,并且在下一页加载时,我从amplify得到一个关于缺少ID标记的错误
如果我设置了event.response.challengeName='SMS_MFA'
,错误会消失,但短信不会被发送,我也不会进行身份验证
有办法去吗
(a) 以一种有效的方式将SMS MFA设置为我的“自定义挑战”?
(b) 更好的是,根本不使用任何lambda触发器,让用户池在没有密码的情况下运行
目前,我能看到的唯一解决办法是:
- 手动执行SMS MFA(不,谢谢)
- 客户端用户用于注册和登录的硬代码密码
它建议直接使用SNS,而不是通过Cognito的MFA。该链接不再可用。有类似的吗?谢谢。我明白你在说什么。但是,让我们采取以下步骤:(1)使用临时密码调用Cognito注册API(2)。此时,用户可能未经确认(3)。用户收到验证码(4)。用户输入验证码5。用户被确认。现在,我们可以登录用户了。我们使用用户验证码并使用临时密码对用户进行身份验证。我们必须存储在步骤#1中生成的密码,才能在步骤#5中检索它。你怎么能绕过它?
event.response.issueTokens = true;
event.response.failAuthentication = false;