跨客户端身份 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 应用程序中进行身份验证,但他们不必同意该范围。
我有一个网站提供 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 应用程序中进行身份验证,但他们不必同意该范围。