什么是实例 ID?

主要特性

除了提供用于身份验证的唯一 ID 之外,Instance ID 还可以生成安全令牌以供其他服务使用。其他特性包括:

生成安全令牌

Instance ID 提供了一个简单的 API 来生成安全令牌,以授权第三方访问您应用的服务器端托管资源。

验证应用真实性

将 Instance ID 令牌传递给您的服务器,并使用 Instance ID 服务验证应用软件包名称,并检查其是否具有有效签名。使用 Instance ID Cloud Service 验证令牌有助于识别已知应用。为了降低费用和减少冗余的往返通信,请将服务器配置为存储这些令牌,以便只需进行一次检查。如果出现安全问题,您的应用可以删除令牌或 Instance ID 本身,并生成新令牌或 Instance ID。此外,如果 Instance ID 服务器检测到 bug 或安全问题,它会启动令牌或 Instance ID 刷新。

确认应用设备处于活动状态

Instance ID 服务器可以告知您上次使用安装了您应用的设备的时间。 您可以使用此信息来决定是保留应用中的数据,还是发送推送消息以重新吸引用户。

识别和跟踪应用

Instance ID 在全球所有应用实例中都是唯一的,因此您的数据库可以使用它来唯一标识和跟踪应用实例。您的服务器端代码可以通过 Instance ID Cloud Service 验证 Instance ID 是否真实,以及是否与向您的服务器注册的原始应用具有相同的 ID。为了保护隐私,您的应用可以删除 Instance ID,使其不再与数据库中的任何历史记录相关联。下次您的应用调用 Instance ID 时,它将获得一个全新的 Instance ID,与之前的 Instance ID 没有任何关系。

Instance ID 生命周期

  1. 当您的应用上线时,Instance ID 服务会发出一个 InstanceIDInstanceID 由一个公钥/私钥对提供支持,其中私钥存储在本地设备上,公钥已向 Instance ID 服务注册。
  2. 您的应用可以使用 getID() 方法随时请求新的 InstanceID。如果您的服务器支持您的应用,则您的应用可以将其存储在您的服务器上。
  3. 您的应用可以根据需要使用 getToken() 方法从 Instance ID 服务请求令牌,与 InstanceID 一样,您的应用也可以将令牌存储在自己的服务器上。向您的应用发出的所有令牌都属于应用的 InstanceID
  4. 令牌是唯一且安全的,但如果出现安全问题,或者用户在设备恢复期间卸载并重新安装您的应用,则您的应用或 Instance ID 服务可能需要刷新令牌。您的应用必须实现一个监听器,以响应来自 Instance ID 服务的令牌刷新请求。

客户端实现

Instance ID 可在 Android 和 iOS 上运行。每种平台都需要您在客户端应用中添加相应的库。Android 需要 Google Play 服务。如果您打算生成令牌,则需要由 Google Developers Console生成的项目 ID。

如需了解详细说明,请参阅 AndroidiOS 实现指南。