我在request codeParameter:“{####}”中得到了这样的代码,我想将其存储在解密的数据库中。
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上的命名代码,而不是代码参数。
https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-custom-email-sender.html
1条答案
按热度按时间gr8qqesn1#
所提供的AWS文档Custom email sender Lambda trigger中引用的lambda触发器与您正在实现的lambda(即Custom message Lambda trigger)不同。
自定义消息Lambda触发器允许您使用一些逻辑来自定义Cognito发送的电子邮件或SMS消息。在此lambda触发器中,您可以访问
event.request.codeParameter
,其中仅包含占位符####
,Cognito在发送消息后将使用实际代码值替换该占位符。自定义电子邮件发送者Lambda触发器允许使用第三方提供商发送电子邮件,因此,您可以访问
event.request.code
中的实际代码(加密格式,使用提供的代码片段解密),以构造完整的消息并根据您的方式发送。还应记住,从文档中:
目前,您无法在Amazon Cognito控制台中分配自定义电子邮件发件人触发器。您可以在CreateUserPool或UpdateUserPool API请求中使用LambdaConfig参数分配触发器。