主要特性
除了提供用于身份验证的唯一 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 生命周期
- 当您的应用上线时,Instance ID 服务会发出一个
InstanceID。InstanceID由一个公钥/私钥对提供支持,其中私钥存储在本地设备上,公钥已向 Instance ID 服务注册。 - 您的应用可以使用
getID()方法随时请求新的InstanceID。如果您的服务器支持您的应用,则您的应用可以将其存储在您的服务器上。 - 您的应用可以根据需要使用
getToken()方法从 Instance ID 服务请求令牌,与InstanceID一样,您的应用也可以将令牌存储在自己的服务器上。向您的应用发出的所有令牌都属于应用的InstanceID。 - 令牌是唯一且安全的,但如果出现安全问题,或者用户在设备恢复期间卸载并重新安装您的应用,则您的应用或 Instance ID 服务可能需要刷新令牌。您的应用必须实现一个监听器,以响应来自 Instance ID 服务的令牌刷新请求。
客户端实现
Instance ID 可在 Android 和 iOS 上运行。每种平台都需要您在客户端应用中添加相应的库。Android 需要 Google Play 服务。如果您打算生成令牌,则需要由 Google Developers Console生成的项目 ID。