当前位置: 首页 > 知识库问答 >
问题:

使用节点在JWT中存储机密信息。js-Express后端

卫弘懿
2023-03-14

我正在开发一个Angular web应用程序,它通过RESTful API与其后端进行通信。目前,我正在使用JWTs存储状态(当前用户ID等)。我使用jsonwebtoken和passport jwt包在我的节点上实现jwt。js Express应用程序。

有时我可能需要在状态中存储一些与会话相关的信息(例如,秘密加密密钥),但用户不应该知道这些信息。

由于JWT有效载荷是签名的,但没有加密,任何愿意解码它的人都可以清楚地看到它的内容,因此将秘密内容直接存储在有效载荷中是不合适的。虽然我可以实现某种自制的加密,无论是整个JWT字符串还是有效载荷中的秘密变量值,但我正在寻找“正确”或“传统”的方式来处理这一点。

共有1个答案

孙岳
2023-03-14

最好的方法是只在后端将其存储在某种持久性存储中,最好是散列存储。

如果不可能,那么可以将数据存储在JWT中,但需要在将数据放入JWT之前对其进行加密。

Bcrypt可能是最简单的仍然安全的解决方案https://www.npmjs.com/package/bcryptjs.请注意,您想要的安全性越高,加密速度就越慢。

 类似资料:
  • 我是身份验证方面的新手。我有一个应用程序,登录后,向服务器发送凭据,服务器生成令牌并将其发送回客户端(移动设备)。 这是我的问题:在可用后,我应该在哪里存储即将到来的请求的信息?例如,如果我想发送请求,我有两种方法: < li >在请求的< code>body上存储所需的信息 < li >使用< code>Base64中的< code>JSON格式对信息进行编码后,将其存储在< code>JWT的

  • 我正在构建一个endpoint/用户,它将返回用户中的内容。json文件。我正在使用aysnc/等待功能。 这会引发以下错误 语法错误:意外标记( 在对象上的createScript(vm.js:56:10)。在模块处运行InthisContext(vm.js:97:10)_在对象处编译(module.js:542:28)。模块_扩展。。模块处的js(模块js:579:10)。在函数tryModu

  • 问题内容: 我正在使用JWT保护节点js URL https://github.com/auth0/express- jwt 要创建JWT令牌用户会话,我只需执行以下操作: 或在登录电话的情况下 每次调用受保护的URL时,我都会检查JWT中间件是否自动设置了该URL 。 现在我想知道: 1-调用sign()时,JWT令牌存储在哪里? 2-每次调用受保护的网址时,我都必须验证()令牌吗?如果是,为什

  • 我正在寻找一个简单、安全的解决方案,使用Node存储用户密码。我是一个密码学新手,但是一直在试图通过网上搜索拼凑出一个解决方案。我正在寻找一种验证,即我所提出的是一个具有基本(而不是银行、医院等)安全需求的web应用程序的可靠解决方案。这是: …以下是我做出的选择让我走到了这一步: 使用什么哈希算法? 根据这篇被广泛引用的文章,看起来领先的竞争者是PBKDF2、bCrypt和scrypt。我选择P

  • 我是JWT的新手,对反应并不陌生,但对如何从前端解码JWT感到非常困惑。我最初认为我可以将JWT Secret存储在. env文件中,但许多消息来源说这样做是一个非常糟糕的主意。我有后端设置,可以在您登录时向我发送JWT。但是如果不将密钥存储在前端,我将如何解码信息? 后端: 我认为前端应该是: 我也读过很多关于后端应该进行验证的文章,但这难道不是一个巨大的安全风险,需要进行验证,然后返回不安全的

  • 我正在尝试使用node。用于访问googleAPI的js客户端库(https://github.com/google/google-api-nodejs-client).我正在尝试使用谷歌云存储API插入bucket和object。我可以成功列出项目存储的存储桶。还可以从存储器中检索特定的存储桶。但无法插入桶或对象。 执行API调用的代码: 以下是日志中显示的内容: 任何指示什么是“必需的”,如何