声明更改会触发 onIdTokenChanged

f.k*_*sis 5 firebase firebase-authentication

文档说这个函数

添加一个观察者来监视已登录用户的 ID 令牌的更改,其中包括登录、注销和令牌刷新事件。

我的问题是,这是否意味着对 id 令牌进行任何更改(包括对声明的更改),或者仅意味着登录、注销和令牌刷新?

我的用例是,我想推送授权更改,如果他们失去了某些权限,则应立即禁止他们使用新禁止的资源,而不仅仅是在下一次加载时。

Dou*_*son 0

是的,它包括对该帐户的自定义声明的更改。问题在于您无法真正“强制”推送索赔更新。客户端应用程序必须自愿获取新的 ID 令牌,而受感染的应用程序可能会选择不这样做。至少该效果将持续不超过 1 小时,直到当前 ID 令牌过期并且必须刷新。但您仍然可以连接您的应用程序以刷新令牌以响应消息或其他更新。

  • 我对此投了反对票,因为您的回答具有误导性。答案最好改写为“不,‘setCustomUserClaims()’不会触发‘onIdTokenChanged’。您必须手动更新并侦听存储在 Firestore 或实时数据库上的另一个自定义文档,以触发 ID 令牌重新获取。” (4认同)
  • 所以基本上答案是“否”,因为声明的更改不会激活 onRetrieveToken,但令牌刷新会激活。 (2认同)