后台系统登录一般流程

登录整个流程
1.异步请求后端得到验证码(生成验证码的答案后存入redis,uuid作为key),验证码图片以base64的编码和uuid返回前端
2.根据用户名和密码、验证码值、uuid传递到后端,为了效率,先判断验证码值是否正确,正确的话,再根据用户名和密码去数据库进行匹配,匹配时,查询用户表、部门表、用户与角色的关联表、角色表获取当中的有用字段信息,再使用用户id去查询权限表、角色权限关联表、用户角色关联表、角色表(因其中功能涉及角色、权限状态)
返回权限标识如(system:role:edit多个的话用逗号隔开),获取到用户id,部门id,用户对象,权限list
3.更新用户表的中当前用户id更新登录ip和登录的时间
4.生成token值为新生成的uuid
5.根据封装好的对象加入userAgent(登录ip,登录地址,浏览器及操作系统),登录时间及过期时间
6.根据login_tokens:uuid将loginUser对象缓存到redis
7.map中放入login_user_key,value为uuid
8.使用jwt

</<dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt</artifactId>
                <version>0.9.1</version>
            </dependency>>

9.String token = Jwts.builder()
.setClaims(map)
.signWith(SignatureAlgorithm.HS512, secret(秘钥)).compact();
10.返回前端token和权限信息
11之后前端每次请求带上token,后端进行token解析进行验证token是否被篡改,如没有,则走后边逻辑,如有,抛出错误
备注:登录记录日志(如验证码过期,验证码错误,用户名/密码错误,用户被停用等,登录成功等)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

softwareDragon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值