2016-12-01 89 views
2

我目前正在开发一个项目,我们希望将Facebook个人资料连接到现有(和登录)的Okta用户。如何将已登录的用户链接到Okta的Facebook身份提供商

该网站是在ASP.NET中使用Sitecore 6.5。

我们使用“授权URL”来执行我们的登录和帐户链接与重定向标注。

当用户未在Okta中登录时,我可以使用Facebook身份提供程序注册并创建一个帐户。在这种情况下,它遵循标注重定向,我们得到一个tx_id。当您登录Okta时将鼠标悬停,然后您访问同样的“Athorize网址”,它会显示redirect_uri,您会得到id_token。这是我设法解码的JWT字符串(example result)

如何使用JWT中的信息将用户链接到身份提供者?还是有另一种方法来做到这一点?如果没有tx_id,我找不到任何方法或API调用将用户添加到身份提供者。

回答

2

我相信你用https://developer.okta.com/docs/api/resources/social_authentication.html为用户添加FB社交认证。是的,一旦你浏览最终网址

https://example.okta.com/oauth2/v1/authorize?idp=0oa0bcde12fghiJkl3m4&client_id=AbcDE0fGHI1jk2LM34no&scope=openid%20email%20profile&response_type=id_token&response_mode=fragment&state=someState&nonce=someNonce&redirect_uri=https://app.example.com/social_auth

,你将被重定向到您的应用程序https://app.example.com/social_auth网址中的ID令牌。在重定向的应用程序中,您可以阅读,解码并为用户创建会话。但是,Okta中也创建了相同的用户配置文件。

在Okta中创建社交认证用户配置文件后,您可以使用它在下次获取id令牌。

+0

感谢您的回答。但是我无法让它工作。当用户没有进入时,我可以做你的步骤。但是,当他登录时,我直接获取带有社交信息的id_token。我无法进行任何会话,也无法将idp链接到用户(或不知道如何)。你可能有代码示例或某种流程,我可以看到api/redirect调用?我也要在Okta登录一张票。会让你更新。 –

相关问题