什么是实例 ID?

主要特性

除了提供用于身份验证的唯一 ID 外,实例 ID 还可以生成用于其他服务的安全令牌。其他功能包括:

生成安全令牌

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

验证应用的真实性

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

确认应用设备处于有效状态

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

识别和跟踪应用

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

实例 ID 生命周期

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

客户端实现

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

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