
1、Jwt的认证方式
用户进行登录中,访问微服务中Controller层的登录方法,若认证通过,生成Token(包含用户数据和权限),返回token信息到前端浏览器,然后,前端那边的代码会记录token,使得再去访问微服务的方法时,请求头都会包含token,然后,后端会解析token,校验token和操作权限,值得注意的是整个过程都不记录用户的任何数据,是一个无状态的服务!
2、shiro的认证方式
用户登录后,交给后端自定义的Realm域,进行用户名和密码的认证比较,认证通过会产生一个以SessionId为key的用户安全数据,然后交给shiro的会话管理,将SessionId存入Redis服务,并将SessionId返回到前端,如果再访问其他后端的控制层方法时,请求头就会包含sessionId,然后再交给后端自定义的Realm域获取安全信息,再交给会话管理将传递过来SessionId与redis服务进行比较,返回自己构造的安全数据(安全数据一定要包含权限信息),因为需要对用户权限进行验证,如果访问请求没有携带sessionId,那么会产生一个新的sessionId,但还需要用户登录,而且,是一个有状态的服务!
建议:关于什么是无状态的服务和有状态的服务可以看看这篇文章
3、为什么用了jwt,还用shiro?或者说用了shiro,为什么还用jwt?
使用JWT和Shiro并不是互斥的选择,它们在权限管理和认证领域各
JWT与Shiro结合使用:无状态认证与全面安全框架的融合

JWT提供无状态的认证方式,适合微服务和跨域场景,而Shiro则是一个全面的安全框架,包括会话管理、授权和加密等功能。两者结合使用,JWT用于认证,Shiro处理授权和会话管理,以实现更复杂的安全需求。在现代应用中,这种结合能提供强大且灵活的安全解决方案。
最低0.47元/天 解锁文章
3004

被折叠的 条评论
为什么被折叠?



