主要特性
除了提供用于身份验证的唯一 ID 之外,Instance ID 还可以生成安全令牌,以便与其他服务搭配使用。其他功能包括:
生成安全令牌
- Instance ID 提供了一个简单的 API,用于生成安全令牌,以授权第三方访问应用的服务器端管理资源。
验证应用的真实性
- 将实例 ID 令牌传递给您的服务器,并使用实例 ID 服务验证应用软件包名称并检查其是否具有有效的签名。使用实例 ID Cloud 服务验证令牌有助于识别已知应用。为了降低费用并减少冗余的往返通信,请将服务器配置为存储这些令牌,以便只需进行一次检查。如果出现安全问题,您的应用可以删除令牌或实例 ID 本身,并生成新的令牌或实例 ID。此外,如果实例 ID 服务器检测到 bug 或安全问题,则会发起令牌或实例 ID 刷新。
确认应用设备处于活动状态
- Instance ID 服务器可以告诉您安装了您应用的设备上次使用的时间。您可以根据此参数来决定是保留应用中的数据,还是发送推送消息以重新吸引用户。
识别和跟踪应用
- 实例 ID 在全球所有应用实例中都是唯一的,因此您的数据库可以使用它来唯一标识和跟踪应用实例。您的服务器端代码可以通过实例 ID 云服务验证实例 ID 是否真实,以及该 ID 是否与在您的服务器上注册的原始应用相同。出于隐私保护考虑,您的应用可以删除实例 ID,使其不再与数据库中的任何历史记录相关联。当您的应用下次调用实例 ID 时,将会获得一个全新的实例 ID,与之前的实例 ID 没有任何关系。
实例 ID 生命周期
- 当您的应用上线时,实例 ID 服务会发出
InstanceID
。InstanceID
由公钥/私钥对提供支持,私钥存储在本地设备上,公钥已注册到实例 ID 服务。 - 应用可以根据需要使用
getID()
方法请求新的InstanceID
。如果您有支持应用的服务器,您的应用可以将其存储在服务器上。 - 您的应用可以根据需要使用
getToken()
方法向实例 ID 服务请求令牌,并且与InstanceID
一样,您的应用还可以在您自己的服务器上存储令牌。向您的应用颁发的所有令牌都属于该应用的InstanceID
。 - 令牌是唯一且安全的,但如果发生安全问题,或者用户在设备恢复期间卸载并重新安装您的应用,您的应用或 Instance ID 服务可能需要刷新令牌。您的应用必须实现监听器,以响应来自实例 ID 服务的令牌刷新请求。
客户端实现
实例 ID 可在 Android 和 iOS 设备上运行。每种平台都要求您在客户端应用中添加相应的库。Android 需要 Google Play 服务。如果您打算生成令牌,则需要 Google Developers Console 生成的项目 ID。