//1、验证令牌[令牌的对比和删除必须保证原子性]
// 0令牌失败 - 1删除成功
String script = "if redis.call('get',KEYS[1]) == ARGV[1] then return redis.call('del',KEYS[1]) else return 0 end";
//redisKey:token保存在Redis的key
//tokenValue:需要验证的token
//原子验证令牌和删除令牌
Long result = redisTemplate.execute(new DefaultRedisScript<>(script, Long.class), Collections.singletonList(redisKey), tokenValue);
if (result == 0L){
//令牌验证失败
return response;
}else {
//令牌验证成功
}
Redis 之原子验证令牌
最新推荐文章于 2023-01-30 14:02:19 发布