我正在使用Amazon-Cognito进行应用程序用户访问。 我的用户池中有两个不同的组。 我想向每个用户发送不同的电子邮件,具体取决于他所属的组。
问题在于,电子邮件验证是在用户在池中创建时发送的,而不是在链接到组之后发送的。
有办法吗? 有什么帮助吗?建议?
答案 0 :(得分:0)
经过大量挖掘,我找到了解决方案。 解决方案是使用AWS Cognito Lambda。
使用AWS Cognito Lambda进行SignUp或AdminCreateUser事件取决于您的应用程序架构。 使用SignUp或AdminCreateUser函数创建用户时,可以通过该对象处的clientMetadata条目传递元数据。
例如(来自AWS Docs):
{ "ClientMetadata": { "string" : "string" }, "DesiredDeliveryMediums": [ "string" ], "ForceAliasCreation": boolean, "MessageAction": "string", "TemporaryPassword": "string", "UserAttributes": [ { "Name": "string", "Value": "string" } ], "Username": "string", "UserPoolId": "string", "ValidationData": [ { "Name": "string", "Value": "string" } ] }
根据docs:
clientMetadata
您可以提供的一个或多个键值对 您为预先指定的Lambda函数的自定义输入 注册触发器。您可以通过以下方式将此数据传递给Lambda函数: 在以下API操作中使用ClientMetadata参数: AdminCreateUser,AdminRespondToAuthChallenge,ForgotPassword和 注册。
因此,将groupM作为一个条目传递到clientMetadata内部:
"ClientMetadata": {
"Group": "MyNiceGroup"
},
...
在lambda实现中,根据传入组确定要分发的电子邮件。