存储 JWT 服务器端 express.js
Posted
技术标签:
【中文标题】存储 JWT 服务器端 express.js【英文标题】:Storing JWT server side 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 中建立一个全局会话?
【问题讨论】:
【参考方案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 类来管理令牌验证和其他挂钩连接类以获取数据的类以上是关于存储 JWT 服务器端 express.js的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Express.js 服务器上执行 JWT API 请求? (edX API)
Node.js - Express.js JWT 总是在浏览器响应中返回一个无效的令牌错误