SpringBoot框架下shiro与jwt的结合的用户登录
写了一次使用 shiro 和 jwt 的用户登录(没有涉及到用户权限的控制),下面进行很简单的技术总结
之前使用的是 Redis 中保存用户信息,使用 uuid-用户信息的键值对来判断用户登录
现在可以通过 shiro 来控制用户登录,使用 jwt 进行 no-session 方式进行验证登录,通过 jwt 同时生成用于用户刷新的 refreshtoken 和 token 来进行用户单点的验证(shiro 也有单点的验证功能)
我简单的总结了一下
用户登录分为下面几种情况
-
浏览界面时 token 未过期
正常浏览
-
浏览界面时 token 过期,refreshToken 没有过期
正常浏览,返回新的 token,生成新的 refreshToken
-
浏览界面时 token 过期,refreshToken 过期
返回登录界面,清除 cookie 中的 token
-
登录时 token 未过期
正常登录
-
登录时 token 过期,refreshToken 没有过期
正常浏览,返回新的 token,生成新的 refreshToken
-
登录时 token 过期,refreshToken 过期
通过数据库判断用户信息
-
浏览时 token 未过期但与 refreshToken 不匹配
重新登录
-
登录时 token 未过期但与 refreshToken 不匹配
通过数据库判断用户信息
其他的话 shiro 和 jwt 的配置就写了这么 5 个,基本上搜索一下都能写出来
值得提一下的是 shiro 会拦截 js,css 这些文件,需要在配置 shiroConfig 中放行,还有就是把添加的 filter 写在最下面
还是很简单的,是我太菜了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效