我目前正在使用 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(使用前将#替换为@)