假设用户可以拥有多个会话(JWT令牌)。是否最好存储一个 hashet 的令牌,其中键是userId?
E.g key: 1 -> hashet: "token1", "token2", "token3", "token4", "moretokens..."
然后检查令牌是否有效我会得到散列集,循环遍历它并尝试匹配令牌?
使用hashet意味着我能够向用户显示当前的会话。
答案 0 :(得分:0)
您可以使用SET
来存储令牌:将用户ID作为键,并将令牌列表存储到SET
(作为值),其中包含唯一元素。
// insert single token
sadd userId token1
// insert multiple tokens
sadd userId token2 token3
// insert an existing token will fail
sadd userId token1
// check if a token is valid
sismember userId token1
// get all tokens of a user
smembers userId
答案 1 :(得分:0)
哈希将是存储值的最有效方式,因为您可以在用户ID下存储所有用户令牌,并使用HGET直接检查它们,而无需全部检索它们并循环遍历它们。