一、登录管理:
1-生成验证码:
通过引入penggle依赖中的Producer类生成公式和图片
使用uuid生成的captcha_codes作为key,验证码作为value存储到redis中,并将图片信息以流的方式返回给前端
注意:
图片打开:data:image/gif;base64,+img字符串内容放到浏览器中即可打开
通过producter生成图片及验证码,验证码有效期为2分钟
TimeUnit是java.util.concurrent包下面的一个类,表示时间的颗粒度,验证码有效期为2分钟
2-登录
用户名、密码、验证码、uuid
1、通过uuid到redis中查询到验证码并删除该条信息,同时校验该验证码的合法性
2、利用Authentication去校验用户名和密码并获取到用户信息,将登录成功的用户信息存放到日志表中
3、通过IdUtils生成token,设置浏览器代理信息,将用户login_tokens:作为key,用户信息作为value存储到redis,有效期30分钟,利用jwt将login_user_key生成指定规则的token,然后将token返回
返回的token为Bearer值
3-获取用户信息
1、通过request获取Bearer值并解析后获得login_user_key值,login_user_key值去完前缀得到uuid,通过userKey到redis中获取用户信息并返回
2、判断是否是管理员,通过用户信息分别获取到角色和权限信息
3、
注意:
claims