我使用jsonwebtoken模块实现了jwt身份验证。但是,在生成和验证jwt令牌时,是否需要为每个用户创建和管理任意密钥?在为每个用户单独管理密钥和使用一个密钥生成和验证jwt令牌之间是否存在差异?
答案 0 :(得分:3)
不,您使用一个密钥来签署您的令牌。这是因为当令牌在请求中返回给您时,您需要能够解码令牌,此时您不知道真正的用户是否正在发送您的令牌,因为您还没有验证它
使用单个密钥签名并验证您的令牌,并记住保证其安全。
答案 1 :(得分:0)
为每个用户单独管理密钥与使用一个密钥生成和验证jwt令牌之间是否存在差异?
简短的回答是否定的,就JWT而言,关键是关键。
答案很长取决于。 JWT秘密的目的是确保消息的完整性,通常这是您在发行者(服务器)级别执行的一种验证消息来源的方法。通俗地说,如果服务器可以验证签名,那么它就可以信任内容。
用户级别的秘密会将信任度降低到某个级别,即您不关心哪个服务器生成了消息,而是关注哪个用户。在典型的身份验证令牌场景中,它实际上更符合您的服务器信任。
答案 2 :(得分:0)