多个身份提供商登录OAuth / Open ID

时间:2016-09-13 06:40:01

标签: android oauth asp.net-identity openid identityserver4

有一些移动应用程序,例如游戏,允许用户使用Google,Facebook或他们自己的服务器注册和登录。使用第三方提供商登录后,他们似乎能够将用户信息(如游戏进度)存储到其服务器中,这意味着他们可以将第三方帐户与其用户配置文件数据库相关联。人们通常如何做到这一点?

我使用Identity Server作为我的主要身份提供商。它使用ASP.NET Identity来管理用户。我有一个Android应用程序,它使用资源所有者授予从Identity Server获取授权令牌。新用户可以通过访问托管身份服务器的站点来注册新帐户。

现在我想在我的Android应用程序中添加一个通过Google或Facebook登录的按钮。当用户通过Google或Facebook登录时,应检索用户信息,然后Android应用程序中的注册表单将显示根据来自第三方提供商的用户信息自动填写的字段。然后,用户可以使用该详细信息进行注册,并使用Google或Facebook帐户的标识符将用户保存到Identity Server。就像一个asp.net身份网站一样,但它适用于移动设备。

2 个答案:

答案 0 :(得分:1)

资源所有者授权在这里是死路一条。您需要使用浏览器切换到登录工作流程。这将为您提供" free"。

的外部登录

https://vimeo.com/171942749

出于安全原因,我们也鼓励这样做 - 请参阅演示文稿中链接到的规范。

答案 1 :(得分:0)

我相信你可以有一个按钮,允许用户使用第三方身份服务器登录,例如Facebook,Google。我唯一想知道的是我不确定你是否能够使用这些用户名和密码进行注册。

你能想到的是:

  • 为用户提供以Facebook,Google等登录的选项。
  • 用户将被重定向到这些第三方服务的登录页面。
  • 当他们登录时,您将收到来自Facebook的令牌,该令牌将为用户提出索赔,然后您可以进行索赔转换并将令牌分配给您的用户。
  • 使用相同的令牌,您可以将数据库中存储的数据与用户相关联。
  • 因此,在您的数据库中,您将拥有2个令牌,其中1个来自Facebook,另一个来自您自己的应用。
  • 我们唯一可以选择的方法是使用Facebook登录。但是通过维护身份服务器提供的信息,您可以直接在后端注册用户,这样用户就不必自己注册。