首页 > 解决方案 > 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 是否也会更新。

标签: firebaseflutterdartfirebase-authentication

解决方案


onIdTokenChanged当应用程序获得新的 ID 令牌或未能获得新的 ID 令牌时触发该事件。从onIdTokenChanged的​​文档中:

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

所以:

  • 如果用户登录并获得他们的第一个 ID 令牌,onIdTokenChanged则会使用该令牌触发。
  • 当 ID 令牌刷新时(通常是每小时一次),将onIdTokenChanged使用新令牌触发。
  • 当 ID 令牌刷新失败时,onIdTokenChanged会在没有令牌的情况下触发。
  • 当用户主动退出时,onIdTokenChanged会在没有令牌的情况下触发。

因此,当当前令牌过期时,它并不会真正触发,就像应用程序获得(或未能获得)新令牌时一样。


推荐阅读