【问题标题】:Firestore authentication angular and nodeFirestore 身份验证角度和节点
【发布时间】:2020-09-27 19:56:08
【问题描述】:

我有一个问题,希望你能指导我,我正在集成一个 Angular 应用程序和一个 Node.js API,我们都使用 Firestore (firebase) 我们正在将一个 Angular 请求(客户端)集成到一个 api rest(节点.js)在验证经过身份验证的用户(firebase)的令牌时,我们遇到了一个问题,因为令牌永不过期,我们不知道它为什么不会过期,尽管我们在 Angular 应用程序中注销它总是作为有效令牌返回Node.js。

从客户端(Angular),我们使用此代码将令牌发送到 API(Node.js)

firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idToken) {
  // Send token to your backend via HTTPS
  // ...
}).catch(function(error) {
  // Handle error
});

来自 Rest API 的验证是这样的:

// idToken comes from the client app
admin.auth().verifyIdToken(idToken)
  .then(function(decodedToken) {
    let uid = decodedToken.uid;
    // ...
  }).catch(function(error) {
    // Handle error
  });

问题是令牌永远不会过期,因为Node.js总是告诉我令牌是有效的,如果用户仍然活跃,它应该如何验证?

【问题讨论】:

    标签: javascript node.js angular firebase firebase-authentication


    【解决方案1】:

    新令牌将在一小时后过期。它总会有一个期限——它永远不会永远存在。

    您的客户端代码始终使用 forceRefresh=true 请求新令牌,这意味着如果立即将其发送到服务器,那么服务器将始终将其视为有效。

    你正在做的很好。但是,不必为每次调用服务器获取一个新的 ID 令牌。您当然可以在给定的整个小时内重复使用令牌。 Firebase SDK 会自动为您刷新令牌,因此您也可以使用 onTokenChanged 监听令牌更新,并且只使用您从您提供的令牌观察者回调中获得的最新令牌。

    另请阅读:

    【讨论】:

      猜你喜欢
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多