我正在使用AWS Cognito管理用户,并希望控制在“忘记密码”流中发送给用户的电子邮件的措词。
我基于此解决方案: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-custom-message.html
基本上,AWS让您定义一个Lambda函数,该函数在需要发送电子邮件时会被调用,并让您定义电子邮件主题和正文的内容(将验证码注入正文)。
我的问题是这样的: 用户可以使用多种语言之一来使用该应用程序。这意味着德语用户可以用德语查看该应用程序。 当他启动“忘记密码”流程时,他应该获得德语电子邮件。 但是,Lambda函数无法了解有关该用户的任何信息,因为在发生此流时该用户已注销,因此Cognito无法传递此信息。
如何解决?
谢谢。
答案 0 :(得分:2)
那么,您需要以某种方式提取有关用户的信息。在这种情况下,Cognito不会为您提供帮助,因为您已经声明用户未通过身份验证。
您还可以选择的另一种方法是,假设用户的语言与发出请求的位置所使用的语言相同(例如,通过发送者的IP)。但这是非常不可靠的解决方案。
另一种选择是创建DynamoDB表(或使用任何其他数据库解决方案,但DynamoDB是最适合此任务的表),并在那里存储用户的电子邮件和该用户的语言。然后,如果调用lambda函数,您已经具有传递给该用户的电子邮件地址,并且可以在生成重置密码电子邮件之前使用它从DynamoDB获取相应的语言。