上下文:我通过jwt使用localStorage验证node.js应用程序。
在阅读了很多关于此问题的意见后,我很困惑。 我有一个使用以下代码登录用户的实现:
this
这有点简化。但是,我想知道编码是否真的有必要。我应该这样做吗?
var payload = jwts.encode({id: user.id}, jwtOptions.secretOrKey);
var token = jwt.sign(payload, jwtOptions.secretOrKey);
我在有效负载中没有过于敏感的数据,但我会添加可以被看到和利用的声明(用户的计算机遭到入侵,而localStorage会显示他们是' admin& #39;用户)。它不是电子商务网站,但我希望它在上述(可能不太可能)的情况下是安全的。
否定的是它会使令牌变大(大约增加30%),因此这会影响性能。考虑到人们现在拥有的带宽,额外的几个角色真的很重要
答案 0 :(得分:0)
RFC 7519 Json Web Token不允许您提出的选项。 jWT使用JWS紧凑序列化,每个部分必须base64 url encoded
JWT表示为由...分隔的URL安全部分序列 句号('。')字符。 每个部分都包含base64url编码 值。 JWT中的零件数量取决于 使用JWS Compact表示生成的JWS 使用JWE Compact序列化的序列化或JWE
发送没有序列化的JWT意味着您需要处理编码。如果要查看紧凑和扁平序列化https://tools.ietf.org/html/rfc7515#page-19
之间的差异,请查看JWS RFC