gpt4 book ai didi

Android:如何使用来自第三方模块的 GoogleAuthUtils 获取 ID_TOKEN?

转载 作者:行者123 更新时间:2023-11-29 15:43:13 32 4
gpt4 key购买 nike

因此,我正在构建一个 Android 模块,它将作为 Gradle 依赖项(或 AAR 包)提供给 Android 应用程序。例如。就像 Mixpanel 一样,Google Analytics 提供他们的模块来与他们的服务交互,我们将提供我们服务的 SDK 以便轻松地与我们的服务交互。

我将我们的模块称为 SDK,将包含它的应用称为父应用。

为了增强用户体验,我们希望使用父应用程序获取用户的 ID_TOKEN。但是获取 ID_TOKEN 涉及使用构建 key 的 SHA1 签名和包名称在 cloud.google.com 中创建客户端 ID。

当有人将我们的 SDK 包含在他们的应用程序(父应用程序)中时,我们无法知道他们构建 key 的 SHA1 签名是什么以及他们的包的名称是什么。

我想知道我们如何才能做到这一点。或者一个更好的问题:是否只有我们在自己的应用程序中询问才能做到这一点?

谢谢。

最佳答案

我假设您指的是 Google 帐户的 ID token (即使用 Google 登录)。

首先,GoogleAuthUtil.getToken 是检索 ID token 的传统方式,不会为您提供最佳的用户体验。查看此博客文章了解详细信息: http://android-developers.blogspot.com/2016/05/improving-security-and-user-experience.html

您应该改用 Auth.GOOGLE_SIGN_IN_API 来检索 ID token : https://developers.google.com/identity/sign-in/android/backend-auth#send-the-id-token-to-your-server

其次,如果请求 token 的是“父应用程序”,则该应用程序的身份将是 Google 的 OAuth 后端的“父应用程序”,您是对的,您无法将 token 检索伪装成您的应用程序。 (如果您可以伪装成一个单独的应用程序,那是没有意义的。假设您将 SDK 分发给 100 个应用程序,用户向应用程序 1 授予 OAuth 授权不应让应用程序 2 自动获得授权)。

但只要你:

  1. 让您的 SDK 消费者向 Google 注册: https://developers.google.com/identity/sign-in/android/start-integrating#get-config
  2. 请他们与您分享他们为“Web应用程序”类型,您可以帮助他们生成您的配置文件SDK 具备读取能力。
  3. 在您的 Android SDK/模块中,您读取配置文件并在 GoogleSignInOptions.Builder.requestIdToken(CLIENT_ID_FROM_CONFIG_FILE) 时使用客户端 ID
  4. 在您的服务器上,确保检查 ID token 的“受众”是其中之一注册的客户端 ID。

然后它应该工作。

希望对您有所帮助。

关于Android:如何使用来自第三方模块的 GoogleAuthUtils 获取 ID_TOKEN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37247707/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com