firebase - FirebaseAuth idTokenChanges Stream 是否会在 idToken 过期时通知?
问题描述
我正在查看 FirebaseAuth 的 API 以防颤动。
它提供以下功能...
/// Notifies about changes to the user's sign-in state (such as sign-in or
/// sign-out) and also token refresh events.
Stream<User?> idTokenChanges() =>
_pipeStreamChanges(_delegate.idTokenChanges());
我很好奇当当前 idToken 过期时这个 Stream 是否也会更新。
解决方案
onIdTokenChanged
当应用程序获得新的 ID 令牌或未能获得新的 ID 令牌时触发该事件。从onIdTokenChanged的文档中:
添加对已登录用户的 ID 令牌更改的观察者,其中包括登录、注销和令牌刷新事件。
所以:
- 如果用户登录并获得他们的第一个 ID 令牌,
onIdTokenChanged
则会使用该令牌触发。 - 当 ID 令牌刷新时(通常是每小时一次),将
onIdTokenChanged
使用新令牌触发。 - 当 ID 令牌刷新失败时,
onIdTokenChanged
会在没有令牌的情况下触发。 - 当用户主动退出时,
onIdTokenChanged
会在没有令牌的情况下触发。
因此,当当前令牌过期时,它并不会真正触发,就像应用程序获得(或未能获得)新令牌时一样。