Firebase 3.x - 令牌/会话过期

时间:2016-05-27 15:29:14

标签: session firebase token firebase-authentication

有谁知道令牌到期需要多长时间?现在没有选项可以在控制台上设置令牌有效性。

4 个答案:

答案 0 :(得分:44)

在最新版本的Firebase身份验证中,登录会话不再过期。相反,它使用长期帐户令牌和短期,自动刷新的访问令牌的组合,以获得两全其美。

如果您想结束用户的会话,可以拨打signOut()

答案 1 :(得分:23)

它确实会过期。登录一小时后,令牌ID到期。如果您尝试验证sdk会返回错误"错误:Firebase ID令牌已过期。从您的客户端应用中获取新的令牌,然后重试。有关如何检索ID令牌的详细信息,请参阅https://firebase.google.com/docs/auth/server/verify-id-tokens。"

是否有这种方法可以将到期时间更改为Firebase令牌,而不是自定义令牌。

任何知道这如何运作的人。

答案 2 :(得分:2)

对于仍感到困惑的任何人,这就是explained in great detail here

答案 3 :(得分:1)

如果上述答案仍然让您感到困惑, 这就是我所做的:

firebase.auth().onAuthStateChanged(async user => {
    if (user) {
        const lastSignInTime = new Date(user.metadata.lastSignInTime);
        const lastSignInTimeTimeStamp = Math.round(lastSignInTime.getTime() / 1000);
        const yesterdayTimeStamp = Math.round(new Date().getTime() / 1000) - (24 * 3600);
        if(lastSignInTimeTimeStamp < yesterdayTimeStamp){
          await firebase.auth().signOut()
          this.setState({
            loggedIn: false
          });
          return false;
        }
        this.setState({
          loggedIn: true,
          user
        });
      }
    })