首页 > 解决方案 > 如果内部和外部帐户(facebook、twitter)具有相同的电子邮件地址,如何使用 IdentityServer4 框架实现合并

问题描述

我们使用带有 IdentityServer4 nuget 包的 .net 核心构建了 OAuth 身份服务器。我们添加了对 facebook 令牌支持的支持。因此身份服务器将使用 facebook 图形 API ( https://graph.facebook.com/v2.8/me )将 facebook 令牌与内部令牌交换。现在,如果两个用户具有相同的电子邮件地址,我们需要合并两个用户。

您能否建议如何将此功能集成到我们的身份服务器中?是否有任何内置支持或最佳实践来实现这一点?

标签: c#identityserver4

解决方案


根据身份服务器文档:

我们的快速入门 UI 通过单个回调汇集所有外部身份验证调用(请参阅 AccountController 类的 ExternalLoginCallback)。这允许单点进行后处理。 Identityserver.io 上的联合网关文档

因此,即使您没有使用 QuickstartUI,您也可以下载它并检查他们如何配置东西以使外部身份验证流程在该控制器上结束,然后从那里进行所有检查(如果有本地用户使用相同的电子邮件)并关联具有此“外部身份验证记录”的用户


推荐阅读