0

我有一个提供 Google 登录功能的网站。在客户端获取 idToken 后会进行服务器端身份验证。

现在我正在为同一个网站制作一个应用程序(在 FLUTTER 中)。在 Google API 控制台中,我必须在同一个项目下创建新凭据并生成新的客户端 ID。

我阅读了有关跨客户端身份的信息(链接:https ://developers.google.com/identity/protocols/oauth2/cross-client-identity )。我想知道如何实现这一点,以便只要求用户批准一次。

我真的需要两个客户端 ID 吗?

4

1 回答 1

1

即使 Web 应用程序和移动 (Flutter) 应用程序没有相同的客户端 ID,这也将起作用。这在此处的文档中有所说明:

Google 认为,当用户向项目中的任何客户端 ID授予对特定范围的访问权限时,该授权表明用户对该范围的整个应用程序(即项目中的所有客户端)的信任。

您应该创建一个包含多个客户端的项目。您的 Web 应用程序将是一个,Flutter 应用程序将是另一个。这些最终会得到不同的客户端 ID,但这没关系。稍后,当用户从 Web 应用程序授权(同意)范围时,他们仍将在 Flutter 应用程序中进行身份验证,但不必重新授权第二个客户端使用相同的范围。反过来也是如此——如果用户首先在 Flutter 应用程序中授权了一个范围,他们稍后将不得不在 Web 应用程序中进行身份验证,但他们不必同意该范围。

于 2020-08-30T09:23:35.150 回答