1

我正在尝试开发一个反应本机应用程序,它不需要用户每次都登录到一堆不同的服务。现在我正在尝试设置 google 方面的设置,用户可以单击一个按钮,该按钮允许我将我的应用程序链接到那里的 Google 用户帐户,这样当他们下次访问该应用程序时就不需要登录到谷歌的功能继续工作。

我很难找到有关如何设置此链接的文档,但我在 Google 上找到了这个页面,这表明它是可能的。

https://myaccount.google.com/accountlinking?hl=en-GB&pli=1

这个想法有点像 last.fm 处理 Spotify。一个简单的登录并批准该服务将意味着 last.fm 可以收听 Spotify 帐户,而无需每次执行上述功能时都需要进一步的身份验证。

我找不到太多关于这个特定事物的教程或文档。

4

1 回答 1

2

Google OAuth 和范围

听起来您希望在您的应用程序中实施 Google 身份联合 - 特别是 OAuth 2.0。根据您经过身份验证的用户体验的复杂性,Google 为您提供了很多选择。

至于权限,Google API 文档调用这些范围。这是每个 Google API的所有可用范围的列表。根据您的应用需要访问哪些 Google 应用/信息,设置范围可以采取一些额外的步骤。默认情况下,新项目的 Google API 范围是emailprofileopenid。这是一个视频,解释了如何在 Google API 控制台中查看和修改范围(如下所述)。

1. 带范围的 Google 登录按钮

最简单的方法是遵循Google 的本指南,该指南解释了如何在前端设置 Google Auth。

简而言之,您首先在 Google API 控制台中设置了一个项目。创建一个新项目并通过单击“凭据”选项卡,然后单击“ OAuth 同意屏幕”选项卡来查看您的项目范围。然后返回您的前端代码,包括一个脚本标签来调用与身份验证功能相关的 Google API。接下来,包含一个包含在 Google API 控制台中找到的客户端密钥的元标记。然后只需创建一个具有特定类和数据属性(在指南中提到)的登录按钮,用户应该能够登录。这将在您的代码中返回少量用户数据,您可以将其用于在您的应用程序中进行验证.

2. 带作用域的 Firebase

更复杂的解决方案是返回更多用户数据的Firebase 身份验证,使用数据库保存和检索与用户及其会话相关的数据,以及许多其他通常需要花费时间开发的便利功能。因此,Firebase 通常被称为后端即服务 (BaaS)。

要获得与上述标准 OAuth 场景相同级别的范围粒度,您可能需要结合使用Fireship.io的这篇文章中描述的两者。

于 2020-05-27T22:43:39.820 回答