【问题标题】:SSO with Google account on both website and mobile app在网站和移动应用程序上使用 Google 帐户进行 SSO
【发布时间】:2012-12-22 12:35:47
【问题描述】:

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

总而言之,我们有:

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

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

简单来说,我会先

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

我找到了几个信息来源:

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

有人能告诉我我需要在网站和移动应用上做什么吗?我应该将信息存储在我的数据库中吗?如何保证认证后所有来自移动应用的http请求都来自认证用户?

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

提前致谢

【问题讨论】:

    标签: android authentication single-sign-on google-oauth


    【解决方案1】:

    由于 OAuth 是授权而不是身份验证的标准,因此它不支持任何直接方法。但是,大多数提供程序允许您调用返回登录用户的 id 的端点。 Google 返回 id 作为基本个人资料信息 的一部分。此步骤在您已经提到的the first article 中进行了描述。有多个库可以为您简化此步骤。

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

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

    现在仍然存在问题,您必须将 user id 从设备发送到您的网络服务器,并验证此调用是否由您的应用发出。幸运的是,谷歌还为这种场景在谷歌播放服务中构建了一个方法。 Android 开发者博客上有一个blog post by Tim Bray 与此相关。

    【讨论】:

    • 谢谢一月!这似乎完美地回答了我的问题。
    猜你喜欢
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多