什么是实例 ID?

实例 ID 为应用的每个实例提供一个唯一 ID。您可以为 AndroidiOS 应用以及 Chrome 应用/扩展程序实现实例 ID。

主要特性

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

生成安全令牌

实例 ID 提供一个简单的 API 来生成安全令牌,这些令牌可以授权第三方访问您的应用在服务器端管理的资源。立即使用这些令牌通过 Google Cloud Messaging 为您的应用授权推送消息。

验证应用的真实性

将实例 ID 令牌传递给服务器,并使用实例 ID 服务来验证应用软件包名称并检查其是否具有有效的签名。使用实例 ID 云服务验证令牌有助于识别已知应用。为减少费用和冗余往返通信,请配置服务器以存储这些令牌,以便只需检查一次。出于安全考虑,您的应用可以“deleteTokens”或实例 ID 本身并生成新的令牌。此外,如果实例 ID 服务器检测到错误或安全问题,会启动令牌或实例 ID 刷新。

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

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

识别和跟踪应用

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

实例 ID 生命周期

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

实例 ID 生命周期

客户端实现

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

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