我是不是需要每次都从 Firebase 获取用户令牌 [关闭]

Posted

技术标签:

【中文标题】我是不是需要每次都从 Firebase 获取用户令牌 [关闭]【英文标题】:Do I need to get the User Token each and every time from the Firebase [closed]我是否需要每次都从 Firebase 获取用户令牌 [关闭] 【发布时间】:2020-05-04 12:32:15 【问题描述】:

我已将以下方法放在Auth 服务上并获取currentUserIdToken 并将其存储为全局变量。这种方法有问题吗?即它会很快过期这个令牌或类似的东西吗?还是我每次都需要从 Firebase 获取这个?我已经采用了这种方法,因为我可以避免对数据库的不必要调用。有什么想法吗?

init(): void 
    this.afAuth.authState.subscribe(async (user: firebase.User) => 
      if (user) 
        this.currentUserUid = user.uid;
      this.currentUserIdToken = await this.afAuth.auth.currentUser.getIdToken(true); // Here

        this.onboardingService.currentUserUid = this.currentUserUid;


    );
  

【问题讨论】:

【参考方案1】:

令牌将每小时过期一次。无需重复调用getIdToken(),您可以使用onIdTokenChanged() 监听它的更改,并提供回调以在客户端SDK 自动刷新时立即接收新令牌。

另见:

Is the firebase access token refreshed automatically?

【讨论】:

我可以有一个AngularFireAuth 方法吗?好像没有这种事吧? 您是否尝试搜索文档?它只是核心 Firebase 库的包装器。如果找不到,请在 angularfire GitHub 上提交问题。 是的,它有this.afAuth.idToken

以上是关于我是不是需要每次都从 Firebase 获取用户令牌 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何每次从 Firebase 数据库中获取随机 UId?

从电子邮件 Firebase 获取用户 ID(不是当前用户)

Firebase 身份验证:每次获取或设置 cookie 时都有 getIdToken?

ConfigurationManager.AppSettings[Key] 是不是每次都从 web.config 文件中读取?

带有 Firebase 的通知系统会在每次重新加载时触发回调

Flutter Firebase auth 用户在设备上不是持久的