typescript 在AWS Cognito验证电子邮件中包含失效日期/时间

xxb16uws  于 2023-01-21  发布在  TypeScript
关注(0)|答案(1)|浏览(135)

我发现当我使用AWS Cognito在我的网站上创建账户时,验证码在24小时内有效。我正在使用AWS CDK将我的堆栈部署到我的AWS环境中。在我的主cdk.ts文件中,我有以下变量:

const datetime: Date = new Date(new Date().getTime() + (24 * 60 * 60 * 1000));
export const date: string = datetime.toLocaleDateString();
export const time: string = datetime.toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'});

在我的Cognito堆栈文件中,我有一个HTML模板,用于用户在注册时收到的电子邮件,其中包括代码的有效期。现在我已经能够在此HTML模板中成功引用它们,但是,日期和时间不正确,因为它们是从我部署堆栈的时间起+ 24小时,而不是从电子邮件发出的时间起+ 24小时。我该如何着手使它从电子邮件创建日期起24小时?

kx7yvsdv

kx7yvsdv1#

您可以利用Cognito triggers的事件并使用lambda生成电子邮件正文。
以下是用户池的CDK设置示例:

const userPool = new UserPool(this, 'UserPool', {
  selfSignUpEnabled: true, // Allow users to sign up
  autoVerify: { email: true }, // Verify email addresses by sending a verification code
  signInAliases: { email: true }, // Set email as an alias
  lambdaTriggers: {
    customMessage: cognitoMailTransformerLambda, // For custom emails
    postConfirmation: cognitoEventDispatcherLambda // Can be used for post confirm events such as setting up a database etc
  },
  customAttributes: {
    ...
  }
})

相关问题