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

2024-01-11

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

我想在迁移期间设置一个组,但我无法执行此操作,因为在整个上下文完成之前尚未创建用户。

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

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


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

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

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

event.response = {
    "claimsOverrideDetails": {
        "claimsToAddOrOverride": {
            
        },
        "groupOverrideDetails": {
            "groupsToOverride": groupsToOverride,
        }
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在迁移触发器中设置 Cognito 组 的相关文章

随机推荐