JWT代币全球&x2B;秘密

JWT代币全球&x2B;秘密,jwt,secret-key,Jwt,Secret Key,我最近在读关于JWT代币的文章,我有一点时间;我有一个想法,它在我的脑海里似乎是伟大的,但我怀疑它不是那么伟大,当它来到最后 我看到人们为了全局目的用单个密钥加密令牌。如果我为每个用户生成全新的密钥,然后连接两个字符串并使用输出对令牌进行加密,会怎么样?这将处理为不应该再访问的用户创建黑名单的需要,等等。我错过了什么?因为我肯定有人有和我类似的想法,而且由于某些原因,它没有被广泛使用。我在哪里丢失了?JWT使用颁发者(通常是服务器)的私钥进行签名(未加密)。数字签名可以识别签名者并保护内容不受更

我最近在读关于JWT代币的文章,我有一点时间;我有一个想法,它在我的脑海里似乎是伟大的,但我怀疑它不是那么伟大,当它来到最后

我看到人们为了全局目的用单个密钥加密令牌。如果我为每个用户生成全新的密钥,然后连接两个字符串并使用输出对令牌进行加密,会怎么样?这将处理为不应该再访问的用户创建黑名单的需要,等等。我错过了什么?因为我肯定有人有和我类似的想法,而且由于某些原因,它没有被广泛使用。我在哪里丢失了?

JWT使用颁发者(通常是服务器)的私钥进行签名(未加密)。数字签名可以识别签名者并保护内容不受更改

如果修改有效JWT的有效负载、签名或创建假令牌,服务器将拒绝它。这就是服务器不需要已颁发令牌列表的原因,因为它可以通过加密方式验证令牌是否可信

您可以为每个用户创建不同的密钥,但这不是必需的,因为您希望证明服务器已发布令牌以信任有效负载中包含的数据。只需要一个密钥即可

JWT使用颁发者(通常是服务器)的私钥签名(未加密)。数字签名可以识别签名者并保护内容不受更改

如果修改有效JWT的有效负载、签名或创建假令牌,服务器将拒绝它。这就是服务器不需要已颁发令牌列表的原因,因为它可以通过加密方式验证令牌是否可信


您可以为每个用户创建不同的密钥,但这不是必需的,因为您想证明服务器已颁发令牌以信任有效负载中包含的数据。当然,只需要一个密钥!对不起,你完全正确。这不是加密,而是签名。我不想处理已发布令牌的列表,但应该强制注销的用户列表-我更改用户的salt,然后他的令牌将无效。你认为我的概念有什么优势吗,或者说它不是经过深思熟虑的?当你提议或散列一组关键用户属性时,为用户更改密钥是强制JWT失效的黑名单令牌的正确替代方法。有些人不喜欢这种技术,因为它打破了JWT的无状态,并且在每个请求中都需要访问数据库。他们更喜欢让令牌过期并建立一个较短的刷新时间。在每种情况下为你的项目选择最合适的选项我明白你的观点。但为了验证令牌,您仍然必须查询您的黑名单数据库,因此我认为我的选择不会构成犯罪:D非常感谢,我会仔细考虑,但很高兴知道这是可以接受的。当然!对不起,你完全正确。这不是加密,而是签名。我不想处理已发布令牌的列表,但应该强制注销的用户列表-我更改用户的salt,然后他的令牌将无效。你认为我的概念有什么优势吗,或者说它不是经过深思熟虑的?当你提议或散列一组关键用户属性时,为用户更改密钥是强制JWT失效的黑名单令牌的正确替代方法。有些人不喜欢这种技术,因为它打破了JWT的无状态,并且在每个请求中都需要访问数据库。他们更喜欢让令牌过期并建立一个较短的刷新时间。在每种情况下为你的项目选择最合适的选项我明白你的观点。但为了验证令牌,您仍然必须查询您的黑名单数据库,因此我认为我的选择不会构成犯罪:D非常感谢,我会仔细考虑,但很高兴知道这是可以接受的。