1、不使用Spring Security框架实现登录认证
其实不用Spring Security框架, 只借助JWT工具也可以实现用户的登录认证逻辑,具体的实现流程如下:
2、Spring Security框架+JWT+Redis缓存+数据库持久化实现登录认证
- 用户发起登录认证请求
- 服务端接收用户请求参数,获取登录账号和密码,通过spring security进行登录认证
- 登录认证失败,则抛异常信息
- 登录认证成功, 则创建用户唯一key,将用户信息及权限信息保存到redis数据库缓存;
- 再调用JWT工具生成token, 返回给用户端
- 用户端之后的请求都在请求头携带该token
- 在spring security的自定义配配置中添加一个JWT的token校验过滤器Filter, 请求过来先校验请求的token,如果token不存在,token验证错误。token过期就拦截请求,抛出对应异常信息,禁止用户访问。
现在常规的springboot的项目中的基于JWT+Spring security的登录认证实现基本就是上面的这种方式,最多就是在增加了自动刷新token有效期的功能实现, 核心的实现流程思路大致就是上面说的这些。