【发布时间】: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
如何更改从通常的 jwt.sign(user,key) 方法生成的 JSON Web 令牌的长度? 我目前已将密钥设置为简单的“12345”,但生成的令牌很长。 为此,我正在使用 node js 库的 passport-local-mongoose 模块包。
如何缩短令牌值?
【问题讨论】:
标签: node.js passport.js passport-local json-web-token
令牌长度取决于您存储在令牌中的数据。您可以存储与用户相关的数据和其他内容,这些内容只是经过编码和附加。
JWT 由三部分组成:标头 - 有效负载 - 签名
它们使用点 (.) 分隔。标头存储有关算法和必要内容的数据,而签名用于检查有效负载中的数据是否未被修改。数据本身取决于您。
所以要缩短令牌,使用更少的数据来生成它。秘密与长度无关。
【讨论】:
您可以通过从有效负载中删除密码来缩短该值。
无论如何,将它放在有效负载中对您没有用处:
令牌被签名以防止被操纵,它们没有被加密。这意味着可以轻松解码令牌并显示其内容。如果我们浏览 jwt.io 并粘贴上述令牌,我们将能够读取标头和有效负载 -但如果没有正确的秘密,令牌是无用的,我们会看到消息“无效签名”。
https://auth0.com/learn/token-based-authentication-made-easy/
【讨论】: