我制作了一个API,我必须将jwt令牌发送到客户端
我将用户number
和userID
加密为令牌
喜欢
var token = jwt.sign({
number: number,
userID: userID
});
然后我使用res.send({status :'success' , token : token})
向客户端发送令牌。
将令牌发送到客户端或分配userID
和number
是否存在任何安全问题,因为这些是非常关键的数据?
答案 0 :(得分:1)
(请注意,您的问题后面的评论通常是为了获得实际提供答案所需的更多信息。请通过编辑问题回复评论或[通常更好]以澄清所要求的内容评论。)
JWT的基本思想是,虽然任何人都可以阅读它,但除非加密签名部分与少数人知道的秘密匹配以及匹配内容,否则它无效。通常这意味着服务器保存对salt或公钥 - 私钥对的私有部分的引用。在第一种情况下,只有知道该密钥的服务器才能验证JWT。在第二个中,任何有权访问公钥的人都可以对其进行验证,但只有拥有私钥的服务器才能创建它。
真正秘密的数据永远不应该包含在JWT中,因为它们很容易解析。但由于上述原因,您可以在客户端和服务器端将它们用作令牌。只要不包含敏感信息,您就可以输入基本身份和权限信息。因为每次调用服务器时都会重新验证它们,所以客户不会对它们进行更改有严重的担忧。
当然,这一切都取决于您不使用客户端代码创建这些。这将使所有保证失效。