最近在搭建项目,研究了jwt与shiro,参考了一些开源的项目,总结出了以下几点:
1.在基于token的验证前提下,jwt与shiro基本上是一样的
2.shiro的优势在于基于session的单点登录权限管理,在前后端不分离的情况下是具有优势的,但是在前后端完全分离的情况下会因为session的缺点产生相应的缺点
3.在使用token的情况下,都会出现允许同一用户的多端登录情况,因为服务器的token是不会主动过期的,除非用户登陆之后直接重置token,废弃原有的token
基于以上总结想法基本如下:
如果项目完全前后分离的设计,jwt与shiro区别不大,都可以满足需求;
如果是完全不分离,纯cms或后台管理类,基于shiro强大的权限管理,最好是使用shiro;
如果项目前后不分离,又要提供对外的api,可以选择两种同时使用,或者只使用shiro,将shiro设计为支持session与token两种行为的模式