在JavaScript中获取不同的标记

在JavaScript中获取不同的标记,javascript,firebase,firebase-authentication,Javascript,Firebase,Firebase Authentication,我目前正在使用React和firebase身份验证。 我注意到这样做会得到不同的标记结果 app.auth().currentUser.getIdToken(true).then( (token) => { console.log(token); }); 及 我不太确定哪个令牌是当前用于将其存储到我的cookie中的令牌。知道区别是什么吗?app.auth().currentUser.getIdToken(true)将在每次调用时为您提供不同的令牌

我目前正在使用React和firebase身份验证。 我注意到这样做会得到不同的标记结果

app.auth().currentUser.getIdToken(true).then( (token) => {
            console.log(token);
        });

我不太确定哪个令牌是当前用于将其存储到我的cookie中的令牌。知道区别是什么吗?

app.auth().currentUser.getIdToken(true)
将在每次调用时为您提供不同的令牌。从API文档中可以看到,passed
true
将强制每次刷新令牌

这里显示的第二种方法将只提供一小时或更短时间内到期的当前令牌,具体取决于它上次刷新的时间。刷新由SDK自动进行,但是如果您以这种方式访问它,您将无法确定何时会发生刷新

如果要在每小时自动刷新一次时侦听最新的令牌,则应使用而不是
onAuthStateChanged()

 app.auth().onAuthStateChanged(function(user) {
            if (user) {
              user.getIdToken().then(function(token) {
                  console.log(token);
              });
            }
        });