公司开发的系统原先的用户信息是基于shiro session 进行管理,但是session不适用于app端,并且服务器重启后需要重新登录。需要改造将shiro和jwt进行整合,实现通过token登录。
1.导入依赖 2.JWTToken 替换 Shiro 原生 Token 3.JWT token 工具类,提供JWT生成、校验、获取token存储的信息application.properties中增加:
注意:jwt加解密的私钥使用配置的字符串而不使用用户登录密码的好处是防止用户密码被其他人修改后,用户操作系统此时再去校验token会发生token解析对不上的情况。
4.JWTFilter请求拦截executeLogin()方法中的getSubject(request, response).login(jwtToken)就是触发Shiro 登录操作。
5.登录授权realm 6.shiro配置 7.登录web端登录完成一系列的检查,成功后创建jwt token。
8.异常处理处理未登录、未授权等异常,返回相应的代码,方便前端捕获跳转登录页面,或者作出提示,而不会直接抛出服务器异常导致提示不够明确。
到此后端已经全部写完。接下来是vue部分。
9.缓存调用登录接口传过来的token 10.请求头设置,带上token 11.生产环境nginx配置因为后端jetFilter登录异常会进行重定向,所以nginx需要加上前端的代理配置。
到此这篇关于vue+springboot+shiro+jwt实现登录的文章就介绍到这了,更多相关springboot jwt实现登录内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!