Interface CodeCache
- All Known Implementing Classes:
MemoryCodeCache
public interface CodeCache
验证码缓存接口
用于存储和获取验证码,支持不同的缓存实现
主要用于验证码生成后存储,以便后续验证时获取
实现此接口的类可以使用不同的存储方式,如内存、Redis、数据库等
- Author:
- Kerbores(kerbores@riemann.tech)
-
Method Summary
-
Method Details
-
set
-
get
-
remove
删除验证码根据键值删除存储的验证码(H6 新增原语,供
consume(String, String)默认实现与缓存清理使用)默认空实现用于兼容只实现了 set/get 的旧实现;需要真正删除语义的实现(如
MemoryCodeCache、Redis)应覆写- Parameters:
key- 验证码的键值
-
consume
校验并消费验证码(防重放)校验缓存中的值与传入值是否一致,一致则删除并返回 true,否则返回 false—— 验证码校验一次后即失效,无法重复使用(H6 修复)。
默认实现基于
get + remove(非原子);建议实现方覆写为原子操作, 如MemoryCodeCache使用ConcurrentHashMap.remove(key, value)(仅当映射为该值时删除), Redis 实现可使用 Lua 脚本保证原子性。- Parameters:
key- 验证码的键值value- 待校验的验证码值- Returns:
- true 表示校验通过且已消费(删除),false 表示不匹配或不存在
-