跨客户端身份 Google OAuth Api 控制台 - Flutter 应用

Cross Client Identity Google OAuth Api Console - Flutter App

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

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

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

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

即使网络应用程序和移动 (Flutter) 应用程序 没有相同的客户端 ID,这仍然有效。这在此处的文档中说明:

Google considers that when a user has granted access to a particular scope to any client ID in a project, the grant indicates the user's trust in the whole application [i.e., all clients in the project] for that scope.

您应该创建一个包含多个客户端的项目。您的 Web 应用程序将是一个,而 Flutter 应用程序将是另一个。这些将以不同的客户端 ID 结束,但这没关系。稍后,当用户从 Web 应用程序授权(同意)一个范围时,他们仍将在 Flutter 应用程序中进行身份验证,但不必重新授权第二个客户端使用相同的范围。反之亦然——如果用户首先在 Flutter 应用程序中授权一个范围,他们稍后必须在 Web 应用程序中进行身份验证,但他们不必同意该范围。