【发布时间】:2019-09-06 00:36:10
【问题描述】:
许多 API 使用 JWT 来授权请求。一维条码似乎能够容纳约 20-128 个 ASCII 字符。我有一个示例 JWT,长度为 300 个字符。
JWT 使用什么字符集?你能压缩一个 JWT 以适应 128 个 ASCII 字符吗?
【问题讨论】:
标签: jwt authorization compression
许多 API 使用 JWT 来授权请求。一维条码似乎能够容纳约 20-128 个 ASCII 字符。我有一个示例 JWT,长度为 300 个字符。
JWT 使用什么字符集?你能压缩一个 JWT 以适应 128 个 ASCII 字符吗?
【问题讨论】:
标签: jwt authorization compression
是的,您可以生成少于 128 个字符的 JWS(签名 JWT),但我不知道这是否适合一维条形码
rfc7519, section 4 中描述的声明都是可选的,因此您可以将自己限制为一两个声明。
JWS 的 3 个片段(标头、有效负载、签名)采用base64url 编码,基本上使用 ASCII 字符集的有限子集。
HS256 签名也很短。
这是我在https://jwt.io 上制作的示例:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyMzQ1NjciLCJpYXQiOjE1MTYyMzkwMjJ9.5MUB9gKEULAzH1iQhOTw_0hMx92LC5tM-f-0udDws38
这只有 126 个字符长。
您可以将示例令牌粘贴到https://jwt.io 上的调试器窗口,以查看里面的内容。
我使用在线条形码生成器制作了此条形码。不确定这是否真的有用,它可能取决于你用来阅读它的软件:
在这种情况下,二维码可能是一个更好的主意。
【讨论】: