最近在搭建項目,研究了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兩種行為的模式