昨天把后台管理的视频看完了,今天把代码完成一下。
一、项目开发-后台管理
4、用户管理
-
用户管理共包含两个接口,分别是根据条件分页查询用户列表和根据ID更新用户状态
-
password
字段属于敏感信息,因此在查询时应过滤掉,可在UserInfo
实体的password
字段的@TableField
注解中增加一个参数select=false
来实现。 -
分页查询用page+LambdaQueryWrapper
-
在这个接口用到了LambdaQueryWrapper+模糊匹配
-
由于只用到了一个表,所以直接用通用service的page方法就可以
5、系统管理
1、后台用户岗位管理
2、后台用户信息管理
- 保存或更新后台用户信息,这个接口涉及到了对用户输入的密码的处理,
- 判断用户名是否可用:
6、登录管理
- 有两种常见的认证方案,分别是基于Session的认证和基于Token的认证
- 所说的Token,通常指JWT(JSON Web TOKEN)
- 登录流程,在这里用到了Redis
- 登录管理共需三个接口,分别是获取图形验证码、登录、获取登录用户个人信息,除此之外,我们还需为所有受保护的接口增加验证JWT合法性的逻辑,这一功能可通过
HandlerInterceptor
来实现。 -
验证码生成工具。本项目使用开源的验证码生成工具EasyCaptcha,同时将其存入了Redis,验证码由后端传给前端
-
用户登录的校验逻辑分为三个主要步骤,分别是校验验证码,校验用户状态和校验密码
-
登录接口需要为登录成功的用户创建并返回JWT,本项目使用开源的JWT工具Java-JWT
-
为所有受保护的接口增加校验JWT合法性的逻辑,在
JwtUtil
中增加parseToken
方法。再编写HandlerInterceptor,再注册 -
前端登录后,后续请求都将JWT,放置于HTTP请求的Header中,其Header的key为
access-token
-
在获取登录用户个人信息接口,用到了多线程ThreadLocal。
- 为避免重复解析,通常会在拦截器将Token解析完毕后,将结果保存至ThreadLocal中
-
修改
JwtUtil
中的parseToken
方法,由于需要从Jwt中获取用户id
,因此需要为parseToken
方法增加返回值。