多身份提供者登录 OAuth/Open ID

Multiple Identity Provider Login OAuth/Open ID

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

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

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

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

你能想到的流程是:

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

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

的外部登录名

https://vimeo.com/171942749

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