为什么 FCM 有时会更改令牌



我对FCM的了解是,它的代币永远不会过期,除非;

  • 应用删除实例 ID
  • 应用在新设备上恢复
  • 用户卸载/重新安装应用
  • 用户清除应用数据。

我为用户提供了一个选项来启用/禁用通知,用户单击禁用并将null发送到服务器,并在用户启用时FirebaseInstanceId.getInstance().getToken()push notifications

现在,有时它会在用户重新启用通知时发送相同的令牌,而很少会更改FCM Token

我的问题是:

  1. 为什么它会改变Token,而 4 个条件都没有 上面提到的是true,如果它是随机更改的,那么它有可能在任何时间点更改令牌, 并且服务器将通知发送到错误的令牌。
  2. 我注意到,如果我清除数据并打开应用程序,它会命中令牌 注册并获得相同的令牌有时它会存储udid设备,或者通过什么机制知道它是相同的 装置。

对于您的问题。

1(安全原因是改变token的背后。如果你的应用具有静态令牌,并且有人获得了该令牌,则可以拥有控件。生成新令牌后,您必须使用服务器中的用户数据对其进行更新。因此,您不会将其发送到错误的令牌。仅当用户脱机一段时间时,才会发生这种情况。

2( FCM 生成的令牌是唯一的。使用您的设备 ID应用 ID生成的FCM令牌。因此,如果您的令牌已更改,则没有其他设备将获得相同的令牌。生成令牌的完整机制不能出于相同的安全目的公开。

相关内容

  • 没有找到相关文章

最新更新