当前位置: 首页 > 知识库问答 >
问题:

在网站和移动应用程序上使用Google帐户的SSO

楚建柏
2023-03-14

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

简而言之,我们有:

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

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

简单来说,我会首先

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

我找到了几个信息来源:

  • Google - 使用 OAuth 2.0 登录
  • Android - 记住用户

与我在一些例子中看到的不同,我不需要向Google日历或任务等Google服务发出请求,我只想验证用户。

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

请不要犹豫,请我澄清一些问题。

提前致谢

共有1个答案

殳凯捷
2023-03-14

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

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

要在Android设备上获取用户id,有一种更简单的方法。只需使用文档中描述的Google Play服务即可。您可以在文档的最后一节中的调用响应中找到用户id。

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

 类似资料:
  • 我正在开发一个android应用程序,我想从我的应用程序中启动Google Drive应用程序。我可以使用以下代码成功完成此操作: 但是,我在手机上有多个帐户,我希望能够通过编程预先选择Google Drive的活动帐户,以便在启动时使用。我的应用程序已经具有Google登录凭据和存储在mCredential中的Google Drive scope。我已尝试将此添加到意图中: ...但是它不起作用

  • 我在Google Play Alpha上发布了我的应用程序。我通过在“选择测试方法”下选择“Closed Alpha testing”,通过电子邮件地址列表添加测试人员。所以说清楚一点,这不是这个问题的重复,因为我没有使用Google Groups。 目前,这是大约2个小时以来,我发布的应用程序到阿尔法轨道,没有任何改变。 如何在封闭的阿尔法轨道上测试app?

  • 所以我目前的状态是我有一个REST API web服务器(ASP.Net web API),一个纯Html的网站,它通过ajax/angular post和get与服务器通信,我还有一个移动应用程序,它通过ajax/angular post和get通信。 我使用基本认证头来保护请求,网络服务器将解密认证头的内容并在之后进行验证。 系统容易受到什么样的攻击?还有,我应该实现什么样的安全性。 我读了关

  • 问题内容: 我开发了一个主要用于手机的网站。我想允许用户直接从网页共享信息到WhatsApp。 使用UserAgent检测,我可以区分Android和iOS。 我发现,为了在iOS中实现上述功能,我可以使用URL: 我仍在寻找OS为Android时要使用的解决方案(因为上述方法不起作用)。我想这与在Android中使用“意图”有关,但是我不知道如何将其作为href的参数。 问题答案: 刚在网站上看

  • 我已经确定,最好的方法是使用应用程序拥有的常规驱动器帐户,如下所述: 使用普通Google帐户作为应用程序拥有的帐户 这要求我们为用户获取OAuth2凭据。上面链接的文章链接到了一篇关于这样做的第二篇文章:

  • 假设有一个网站https://www.example.com我们正在听https://www.example.com/product在Android应用程序中使用以下意图过滤器 文件资产链接。json也托管在示例中。通用域名格式 Android应用程序链接工作正常,如预期。 现在,如果用户进入浏览器并打开example.com和用户点击https://example.com/product将在应用