JWT - 在cookie中存储令牌

时间:2016-05-17 16:55:32

标签: jwt express-jwt

我理解将令牌存储为cookie与使用localStorage存在许多差异/优点和缺点。这个问题是关于将其存储在cookie中的实际实现的问题。

我很困惑,因为如果令牌存储在cookie中,用户将始终被验证,使得令牌的使用毫无价值。令牌将始终与服务器端会话数据相关联。

有人可以解释实施细节吗?

1 个答案:

答案 0 :(得分:1)

示例:

(1)普通旧cookie:您的"旧普通cookie中的数据":" 129scdsdf23i"

(2)JWT令牌:保存在cookie中的JWT数据/令牌:" 1122abde"

您如何验证数据/令牌是否是有效的身份验证":

(1)普通的旧cookie:比较" 129scdsdf23i"将数据保存在数据库/服务器中,检查它们是否是相同的"

(2)JWT令牌:步骤a:验证" 1122abde"," 1122abde"本身是有效的,因为(1 + 2 + a)= d和(1 + 2 + b)= e。这只是一个例子。

步骤b:解码" 1122abde"到" {user:user1,email:" user1@gmail.com"}",如您所见,现在您收到了用户和电子邮件。

所以" 1122abde"由服务器创建,并且在创建期间涉及秘密随机数。如果不知道"秘密"。

,黑客就永远无法创建有效的JWT令牌
  

"我很困惑,因为如果令牌存储在cookie中,用户将始终被验证,使得令牌的使用毫无价值。"

=> cookie只是一个保存数据的地方,它与您的数据本身无关。如果你有" 1x22abde"在cookie中,它是一个错误的令牌,将无法通过身份验证。