代码之家  ›  专栏  ›  技术社区  ›  temporary_user_name

注销后,我的firebase idToken仍然有效?

  •  1
  • temporary_user_name  · 技术社区  · 6 年前

    我的firebase前端有以下代码:

      document.querySelector('#sign-out').addEventListener('click', () => {
        firebase.auth().signOut().then(() => {
          document.location = '/sign-in';
        }, (error) => {
          console.error('Sign Out Error', error);
        });
      })
    

    /sign-in

    但是,当我导航到 /chatroom ,则认为我已登录。我的python/flask后端在端点上有以下代码:

    @app.route("/chatroom")
    def chatroom():
        if 'idToken' in request.cookies:
            id_token = request.cookies.get("idToken")
            try:
                decoded_token = auth.verify_id_token(id_token)
            except:
                print("INVALID TOKEN")
                return redirect(url_for("sign_in"))
    
            return render_template("chatroom.html")
        else:
            return redirect(url_for("sign_in"))
    

    而不是将用户重定向到 /登录

    编辑:

    firebase.auth().signOut().then(() => {
        firebase.auth().onAuthStateChanged((user) => {
            if (user) {
              console.log('still signed in');
            } else {
              console.log('signed out');
            }
          });
        }, (error) => {
          console.error('Sign Out Error', error);
        });
    

    It输出 signed out

    1 回复  |  直到 6 年前
        1
  •  2
  •   Doug Stevenson    6 年前

    注销不会使令牌无效。它只会导致SDK忘记它,所以它不会被刷新或自动传递给其他Firebase产品。旧令牌的有效期最长为1小时,直到需要刷新为止。如果不刷新,则验证将失败。