【问题标题】:JSON Web Token in Node.jsNode.js 中的 JSON Web 令牌
【发布时间】:2017-02-27 09:22:00
【问题描述】:

如何更改从通常的 jwt.sign(user,key) 方法生成的 JSON Web 令牌的长度? 我目前已将密钥设置为简单的“12345”,但生成的令牌很长。 为此,我正在使用 node js 库的 passport-local-mongoose 模块包。

使用的密钥是:

如何缩短令牌值?

【问题讨论】:

    标签: node.js passport.js passport-local json-web-token


    【解决方案1】:

    令牌长度取决于您存储在令牌中的数据。您可以存储与用户相关的数据和其他内容,这些内容只是经过编码和附加。

    JWT 由三部分组成:标头 - 有效负载 - 签名

    它们使用点 (.) 分隔。标头存储有关算法和必要内容的数据,而签名用于检查有效负载中的数据是否未被修改。数据本身取决于您。

    所以要缩短令牌,使用更少的数据来生成它。秘密与长度无关。

    【讨论】:

    • 数据就是注册用户的用户名和密码。我认为没有办法缩短它
    【解决方案2】:

    您可以通过从有效负载中删除密码来缩短该值。

    无论如何,将它放在有效负载中对​​您没有用处:

    令牌被签名以防止被操纵,它们没有被加密。这意味着可以轻松解码令牌并显示其内容。如果我们浏览 jwt.io 并粘贴上述令牌,我们将能够读取标头和有效负载 -但如果没有正确的秘密,令牌是无用的,我们会看到消息“无效签名”。

    https://auth0.com/learn/token-based-authentication-made-easy/

    【讨论】:

      猜你喜欢
      • 2018-06-11
      • 2015-06-03
      • 2016-08-01
      • 2016-09-07
      • 2018-08-02
      • 2012-09-21
      • 2016-03-23
      • 2015-07-20
      • 2016-12-08
      相关资源
      最近更新 更多