spring boot+shiro+jwt

一、验证登录

        前后端分离项目进行账户登录认证及授权,单单shiro并不能满足需求,因此引入jwt进行用户身份判定。身份判定方式有多种,而jwt是利用服务端生成的token令牌进行判定,实现服务端无状态登录模式,且避开数据库存储带来的消耗。

二、token与jwt

        token是一个加密的令牌,包含三个部分,用户唯一标识、当前时间戳和签名。而jwt利用token形成header,payload,signature三个部分组成一串字符串。其中加密方式和过期时间可以自己定义。

三、实例

        首先创建JWTUtil工具类,设置jwt的加密方式和过期时间,createToken(参数)生成token,参数可以为用户的多个信息,verify(token, 参数)校验token,还可以根据信息存放的字段名从token中获取数据。

        创建realm,该realm作用于shiro,定义用户认证和授权,认证时首先检测token是否存在及是否有效,无效则拦截该请求。

        创建JWTFilter拦截类,拦截非法的token,并可以在这里设置跨域请求,因为当请求进来时首先需要进过该拦截器的拦截。

        创建shiroFilter拦截类,在其中注入jwt拦截器,使jwt拦截器起作用并让请求先经过jwt拦截器的拦截,再进行请求的shiro拦截。(shiro拦截器中需要关闭shiro自带的session)

你可能感兴趣的:(spring boot+shiro+jwt)