我想你现在一定已经得到了你的问题的答案。但我仍然会回答这个问题,以帮助其他有兴趣实现类似目标的用户。
因此,要使用 google 帐户访问令牌对您的应用用户进行身份验证和授权,您必须按照以下步骤操作。
- 在 Google Cloud Console 中创建一个包含两个组件的项目(通过单击左侧窗格上的“APIs $ Auth >Credentials”选项创建组件)。第一个组件将是您的 Web 组件(例如 Web 服务),第二个组件是您的 android 应用程序。
- 尝试通过传递当前上下文、电子邮件 id(使用帐户管理器查询)和范围为(“audience:server:client_id:”)来执行 GoogleAuthUtil.getToken() 方法,通过在 android 应用程序中查询帐户管理器来获取访问令牌。
- 在 Google Cloud Console 上创建的项目下可用的 Web 组件的“客户端 ID”参数在哪里。
- 该方法将返回编码为 JSON Web 令牌或 JWT 的 ID 令牌。
- 此 ID 令牌是应用程序在服务器上对用户进行身份验证所需的一切。
- ID 令牌由以下参数组成
问题:总是accounts.google.com
aud:项目的web组件的客户端ID
azp:项目的Android应用组件的客户端ID
电子邮件:标识请求令牌的用户的电子邮件,以及其他一些字段。
通过 https(强制)将此令牌传递给您的 Web 组件(例如 Web 服务),其中 Web 组件和 Android 组件客户端 ID 已经存储。
在服务器上解码接收到的 JWT ID 令牌后,检查令牌的“aud”参数和存储的 Web 组件客户端 ID 是否相等,从而对用户进行身份验证。
可以通过读取 JWT ID 令牌的 email 参数来获取用户身份,该参数指定在执行 GoogleAuthUtil.getToken() 方法时提供的用于访问 android 应用程序中的 Id 令牌的电子邮件 ID。
注意:android 上的 ID 令牌只能通过执行 GoogleAuthUtil.getToken() 来获取,前提是它是由在 Google Cloud Console 上的项目下创建 android 组件时指定的相同证书所指定的相同应用程序。
更多信息可以在“ https://developers.google.com/accounts/docs/CrossClientAuth ”上找到