如何在迁移触发器中设置 Cognito 组

Zan*_*rin 5 amazon-cognito aws-lambda

我目前正在使用 CognitoTrigger“用户迁移”构建从 AWS 用户池到另一个用户池的迁移解决方案。

我有一个要在迁移过程中设置的组,但我不能这样做,因为在整个上下文完成之前没有创建用户。

我该如何解决这个问题?我不想创建 PostAuth - lambda,因为我只需要/想要/可以在每次迁移时运行一次,而且我还想在迁移发生的瞬间(或最多几分钟后)执行此操作。(或者是否可以进行此 PostAuth 检查,如果它是第一次触发?)

我尝试了 PostConfirm 以希望在创建用户时触发,但没有触发。

Bro*_*ass 6

如果其他人遇到了这个问题 - 我使用用户迁移触发器和预令牌生成触发器的组合解决了这个问题。

在用户迁移触发器(主要从https://github.com/Collaborne/migrate-cognito-user-pool-lambda复制)中,如果身份验证失败/新池中不存在用户,查找并创建用户。

在 Pre Token Generation 触发器中,如果用户尚未添加到组中,但在旧用户池 ( adminListGroupsForUser) 中查找组成员身份,则将它们添加到新池 ( adminAddUserToGroup)。关键部分是覆盖响应中的组成员身份声明,以便将它们添加到客户端的令牌中(groupsToOverride只是使用所属组名称的数组):

event.response = {
    "claimsOverrideDetails": {
        "claimsToAddOrOverride": {
            
        },
        "groupOverrideDetails": {
            "groupsToOverride": groupsToOverride,
        }
    }
};
Run Code Online (Sandbox Code Playgroud)