游戏等移动应用允许用户使用Google、Facebook或自己的服务器注册和登录。在使用第三方提供商登录后,他们似乎能够将游戏进度等用户信息存储到自己的服务器上,这意味着他们可以将第三方账户与自己的用户档案数据库关联起来。人们通常是怎么做的?
我使用身份服务器作为我的主要身份提供者。它使用ASP。. NET标识来管理用户。我有一个android应用程序,它使用资源所有者授予从身份服务器获得授权令牌。新用户可以到身份服务器所在的站点注册新帐户。
现在我想添加一个按钮,通过谷歌或Facebook在我的Android应用程序登录。当用户通过Google或Facebook登录时,应该检索用户信息,然后Android应用程序中的注册表单将显示,并根据第三方提供商的用户信息自动填写字段。然后,用户可以使用该详细信息进行注册,并使用标识符(即Google或Facebook帐户)将用户保存到身份服务器。就像一个asp.net身份网站做的一样,只是在移动端。
资源所有者授予在这里是一个死胡同。您需要使用浏览器切换到登录工作流。这将为您提供"免费"的外部登录。
https://vimeo.com/171942749出于安全考虑,也鼓励这样做——参见演示文稿中我链接到的规范。
我相信你可以有一个按钮,允许用户登录使用第三方身份服务器,如Facebook,谷歌。我唯一想知道的是,我不确定你是否能让他们使用这些用户名和密码注册。
你能想到的流程是:
- 让用户选择以Facebook, Google等登录
- 用户将被重定向到第三方服务的登录页面。
- 当他们登录时,您将从Facebook收到一个令牌,该令牌将对用户进行索赔,然后您可以进行索赔转换并将令牌分配给您的用户。
- 使用相同的令牌,您可以将数据存储在与用户相关的数据库中。
- 所以在你的数据库中,你将有2个令牌,一个来自Facebook,另一个是你自己的应用程序。
- 我们唯一能给的选择就是用Facebook登录。但是通过维护身份服务器提供的信息,你可以直接在后端注册用户,这样用户就不必自己注册了。