【问题标题】:Storing JWT server side express.js存储 JWT 服务器端 express.js
【发布时间】:2019-08-25 08:45:36
【问题描述】:

我们目前的情况:

我们有一个使用 express.js 构建的内部 Web 应用程序来存储和分析 dna。我们还有一个 3rd 方应用程序,用于存储与实验相关的信息。由于这个第 3 方应用程序也可以存储 dna,我的应用程序中有一个功能可以手动导出 dna 信息,然后可以将这些信息上传到这个第 3 方软件。今天我收到了第 3 方应用程序的 api 密钥,并想在我的同事将 dna 输入我的应用程序时更新它的 dna 库。

我们的目标是:

第 3 方应用程序的 api 给我一个 jwt 令牌,然后我可以使用它在邮递员中发出请求,并且必须在它过期时定期更新。如果我在我的应用程序中的所有服务器端都这样做,我如何存储 jwt 访问令牌,因为这将用于服务器发出的每个请求?有没有办法在 express 中建立一个全局会话?

【问题讨论】:

    标签: node.js express jwt express-jwt


    【解决方案1】:

    如果你只需要一个 js 文件中的这个标记,你所要做的就是将变量设置为这个文件的开头,你会引用它。 (全球范围)

    如果在多个文件中您有 2 个选项:

    丑陋的:

    您正在使用global 对象,例如:global.jwt1 = '...'

    您创建一个令牌管理器:

    let tokens = {}
    
    class Manager {
      static get(name) {
        if(!tokens[name]) 
          return null;
        return tokens[name]
      }
    
      static set(name, val) {
        tokens[name] = val
      }
    }
    module.exports = Manager;
    

    及用法:

    const jwt = require('./manager')
    jwt.set('client 1', '...')
    let t = jwt.get('client 1')
    

    【讨论】:

    • 我最终创建了一个包并设置了一个 Connection 类来管理令牌验证和其他挂钩连接类以获取数据的类
    猜你喜欢
    • 2015-11-26
    • 2021-06-18
    • 1970-01-01
    • 2011-07-24
    • 2016-08-25
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多