【问题标题】:Use a global var / singleton to store the auth token sent from client?使用全局 var/singleton 存储客户端发送的身份验证令牌?
【发布时间】:2020-05-23 21:16:42
【问题描述】:

我使用 Firebase 作为我的服务器和客户端,它使用基于令牌的身份验证。我只有移动客户端,所以服务器上基本上没有用户会话需要管理,客户端需要在每个 api 请求中发送一个 IdToken。

根据这个要求:

我可以只创建一个全局变量或单例来将此令牌存储在内存中,以便稍后在堆栈中使用吗? (而不是在堆栈中的任何地方传递这个 idtoken)

var sess;
app.get('/',function(req,res){
    sess=req.session; // it has 'auth_token' param in it.
});

【问题讨论】:

    标签: firebase authentication singleton


    【解决方案1】:

    将每个用户的数据存储在服务器应用程序的全局变量中几乎肯定行不通。如果您有多个用户或多个服务器,这将成为一个问题。 (您如何确保每个用户从全局内存中访问正确的令牌,甚至是在该用户尚未存储其令牌的机器上?)

    会话 cookie 的全部意义在于在客户端反复联系服务器时保持这种状态。只需为每个请求使用 cookie 值即可。

    【讨论】:

    • 这个变量不应该只在 api 请求期间存在吗?
    • 那么它是一个全球性的有什么意义呢?根据定义,全局变量永远存在。如果你想要另一个范围,那么只实现那个范围。
    猜你喜欢
    • 1970-01-01
    • 2012-08-31
    • 2013-08-19
    • 2015-12-13
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-01
    相关资源
    最近更新 更多