1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 你好,
在Cognito中的账户链接的双方必须是一个已存在的本地用户和一个不存在的外部身份。如果外部身份已经存在于用户池中,你必须首先使用AdminDeleteUser删除该外部身份,然后使用AdminLinkProviderForUser API将本地用户链接到外部身份。在所有情况下,你都需要在客户端做错误处理,也就是从pre-signup触发器接收一个错误然后重试sign-in。因为用户已经有与外部提供商的现有会话,重新尝试登录应该能够无缝地允许外部用户作为本地用户进行登录。
请确保从安全角度正确审查您的流程,如果您为本地用户生成临时密码,请确保使用难以猜测的强随机密码,理想情况下,在帐户链接的场景下您应该在链接之前进行帐户验证。例如,在预注册期间,您检测到用户已经拥有本地帐户,然后使用自定义工作流向电子邮件地址发送链接请求,只有当该链接被点击(即验证该邮件所有者是同一人并批准链接)后,您应该使用AdminLinkProviderForUser链接帐户。或者,如果你从外部提供商收到email_verified为true的标志,那么将两个身份链接在一起是安全的,不要链接未验证电子邮件的身份。