session验证跟Jwt验证的链路区别:session多依赖现有的SpringSecurity体系即可,只需要在登录时维护安全上下文仓库存入登录时的Session,内容就是用authenticationManager.authenticate(username,password)登录之后的authentication存进仓库即可。之后的每次请求自有SecurityContextHolderFilter帮拦截浏览器来的cookie并放入安全上下文中被SecurityContextHolder.getContext().getAuthentication()到在CurrentUser.java里暴露出CurrentUserId。 而jwt就要都自己维护了,登录时依靠自己写的jwtflter去从请求头里读取Bear行是不是有jwt去解析,有就同样放到安全上下文给获取当前用户id,没有就放行给SecurityConfig看看请求url是否是不需要jwt认证的公开url,那么就不需要在登录代码里
但是关于退出登录,我两套方案都没有实现和了解。只听说jwt要用redis黑名单使得token失效,session看到ai实现用简单的Session.invalidate()并clearContext()就退出了。