如何从cognito解密验证码



我在请求代码中得到了这样的代码参数:"{###}";我想把它存储在解密后的数据库中。

const { plaintext, messageHeader } = await decrypt(
keyring,
b64.toByteArray(codeParameter),
);
console.log(plaintext, messageHeader);

这是的请求

{
version: '1',
region: 'eu-west-1',
userPoolId: 'xxxxxxx',
userName: 'xxxxxxxx',
callerContext: {
awsSdkVersion: 'aws-sdk-unknown-unknown',
clientId: 'xxxxxxxx'
},
triggerSource: 'CustomMessage_SignUp',
request: {
userAttributes: {
sub: 'xxxxxxx',
'cognito:email_alias': 'xxxxxxx',
email_verified: 'false',
'cognito:user_status': 'UNCONFIRMED',
email: 'xxxxxxx'
},
codeParameter: '{####}',
linkParameter: '{##Click Here##}',
usernameParameter: null
},
response: { smsMessage: null, emailMessage: null, emailSubject: null }
}

从我能看到的情况来看,它是AWS DOC上的命名代码,而不是codeParameter。。

https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-custom-email-sender.html

提供的AWS文档自定义电子邮件发件人lambda触发器中引用的lambda触发器与您正在实现的lambda不同,后者是自定义消息lambda触发器。

自定义消息Lambda触发器允许您有一些逻辑来自定义Cognito发送的电子邮件或短信。在这个lambda触发器中,您可以访问event.request.codeParameter,它只包含一个占位符####,一旦Cognito发送消息,它将用实际的代码值替换该占位符。

自定义电子邮件发件人Lambda触发器允许使用第三方提供商发送电子邮件,因此,您可以访问event.request.code中的实际代码(加密格式,使用提供的代码段解密),以构建完整的消息并通过您的方式发送。

还要记住,从文件:

目前,您无法在Amazon Cognito控制台中分配自定义电子邮件发件人触发器。您可以在CreateUserPool或UpdateUserPool API请求中使用LambdaConfig参数分配触发器。

相关内容

  • 没有找到相关文章

最新更新