是否可以将开发人员身份与来自外部提供商的身份合并?

Is it possible to merge developer identity with identity from external provider?

在我们的应用程序中同时使用 Facebook 和我们自己的开发人员身份验证提供程序。乍一看 link 合并和合并概念似乎非常简单,但要找出我的问题的答案却出人意料地棘手。文档明确指出可以合并两个开发人员身份,但这不是我想要的。

为了合并来自 FB 的身份和开发人员身份,我应该传递什么调用序列以及传递哪些参数?在这种情况下,我什至不确定这是合并还是 link。

可以 link 开发人员通过 Facebook 验证身份。高级步骤可能如下所示

  1. 用户针对您的后端进行身份验证
  2. 身份验证成功后,您可以使用您的开发人员提供者名称和用户标识符(用户名)更新应用程序中的登录映射,并在凭据提供者上调用刷新。
  3. 这应该从您的应用程序调用您的后端,传递当前的 identityId 和登录映射。然后,您使用来自后端的数据调用 GetOpenIdTokenForDeveloperIdenity http://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetOpenIdTokenForDeveloperIdentity.htmls
  4. 当用户使用 Facebook 登录时,您将 Facebook 令牌添加到现有登录映射中,并在凭据提供程序上调用刷新。这现在应该调用第 3 步,但是您的后端将收到带有两个键的登录映射 1. 开发人员提供者名称:用户标识符和 2. 'graph.facebook.com':facebook 令牌。现在,当您调用 GetOpenIdTokenForDeveloperIdenity 时,您应该使用这两个键设置登录映射,它将 link 身份。

有关实施的更多详细信息,请参阅此文档和 http://docs.aws.amazon.com/cognito/latest/developerguide/developer-authenticated-identities.html 并参阅 'Supporting transition between providers'