需求:用戶第二次登錄時,踢掉第一次登錄的 Session。
token,存入 Redis:user:{id}:token = {token}:{version}version++,舊 token 自動失效// 登錄
String newToken = UUID.randomUUID().toString();
redisTemplate.opsForValue().set("user:" + userId + ":token", newToken + ":" + newVersion);
// 攔截器
String stored = redisTemplate.opsForValue().get("user:" + userId + ":token");
if (stored == null || !stored.endsWith(":" + currentVersion)) {
throw new SessionExpiredException();
}
參考:CSDN 完整實現