3

我想为我的应用程序的用户使用 SSO(单点登录),但我不明白如何将它应用到我的案例中。

总而言之,我们有:

  • 一个数据库
  • 一个网站
  • iPhone 应用程序/Android 应用程序

目前,可以在网站上创建一个帐户,然后使用相同的凭据从移动应用程序进行连接。移动应用程序和服务器之间的所有通信都通过 http 请求进行。

简单来说,我会首先

  • 能够使用 Google 帐户对用户进行身份验证
  • 为 Android 用户提供选择与其智能手机关联的 Google 帐户之一

我找到了几个信息来源:

与我在某些示例中看到的不同,我不需要向 Google 服务(如 Google Calendar 或 Tasks)发出请求,我只想对用户进行身份验证。

有人可以告诉我我需要在网站和移动应用程序上做什么。我应该将信息存储在我的数据库中吗?如何确保经过身份验证后,来自移动应用程序的所有 http 请求都来自经过身份验证的用户?

不要犹豫,请我澄清一些观点。

提前致谢

4

1 回答 1

4

由于 OAuth 是授权标准而不是身份验证标准,因此它不支持任何直接方法。但是,大多数提供程序允许您调用返回登录用户ID的端点。Google 将id作为基本配置文件信息的一部分返回。这一步在第一篇文章中有描述您已经提到有多个库可以为您简化此步骤。

因此,为了识别用户,您需要获取他的Google 用户 ID并将其存储/匹配到您的数据库中。

要在 Android 设备上获取用户的id,还有一种更简单的方法。只需按照其文档中的说明使用 Google Play 服务。您可以在文档最后一部分的调用响应中找到用户 ID 。

现在仍然存在问题,您必须将用户 ID从设备发送到您的 Web 服务器并验证此调用是否由您的应用程序发出。幸运的是,谷歌还为这种场景在谷歌播放服务中构建了一个方法。Android 开发者博客上的 Tim Bray有一篇关于此的博文。

于 2013-01-08T19:21:38.163 回答