如何在Suave框架会话状态中删除SessionID等指定key?
Suave 会话指定Key删除方案
2021年11月之前的旧版本实现
- 旧版本底层
StateStore仅对外暴露get、set两个公开方法,没有原生提供删除会话Key的API,可通过两种替代方案实现等价效果:- 方案1:调用
setSessionValue将SessionID对应的值设置为null或空字符串这类无效标识,后续请求校验时只要读到无效标识就判定用户未登录,效果和删除Key一致 - 方案2:手动设置名为
st的会话Cookie过期时间为过去的时间,触发客户端自动清除该Cookie,后续请求服务端就不会拿到旧的会话数据
- 方案1:调用
2021年11月之后的新版本实现
- 对应功能PR已经合并进官方代码,
StateStore新增对外暴露unset方法,上层封装了removeSessionValue能力,直接调用该方法传入你要删除的SessionID键名,即可直接从会话映射表中移除该Key,无需额外兼容处理
注意:无论使用哪种会话清除方案,原有逻辑中服务端内存映射表的GUID清除步骤建议保留,做双重校验避免安全风险
内容的提问来源于stack exchange,提问作者RMills330
相关产品推荐
相关产品推荐

