什么是实例 ID?

主要特性

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

生成安全令牌

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

验证应用的真实性

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

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

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

识别和跟踪应用

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

实例 ID 生命周期

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

客户端实现

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

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