什么是实例 ID?

主要特性

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

生成安全令牌

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

验证应用真实性

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

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

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

识别和跟踪应用

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