ruoyi登录流程

首先加载登录界面会发送验证码请求和获取Cookie

会调用created函数

Getcode是获取验证码

GetCookie是获取cookie

GetCodeImg函数会调用ajax发送请求给后端

后端GetMapping接口接收到请求后执行getCode方法

Getcode方法中会随机生成uuid(用户的唯一标识)

然后生成验证码图片和答案

CapText会生成一个例如6-2=?@4的字符串

Codestr中保存6-2=?

Code中保存4也就是验证码的答案

Image就是验证码图片了

然后将用户的uuid、生成的验证码答案、以及验证码有效时间的信息传入redis内存数据库中

最后getcode函数把生成的uuid和经过转换后的验证码图片装入ajax中返回给前端

然后执行then后面的函数,变量res中就存储着返回的ajax信息,

然后赋值给页面变量codeurl、loginform.uuid

到此登录界面验证码和用户唯一标识生成完毕

当我们输入完用户名和密码点击登录按钮时,会触发handleLogin函数

handleLogin中会调用user.js中的Login函数并把loginform(用户名、密码、uuid、用户输入的验证码答案)传入函数中

Login函数把loginform中的数据取出后

又传入login.js的login函数中使用ajax传入后端接口

后端接口执行login方法将传入的用户数据用作生成token的依据

进入token生成方法中首先执行验证码对错判断

验证码判断函数首先根据用户的唯一标识(uuid),在redis数据库中找出对应的验证码答案赋值给captcha

再与用户输入的验证码(code)对比,如果出错就直接抛出异常

再执行用户信息验证

                  

该方法回去调用UserDetailsServiceImpl.loadUserByUsername,方法最终会调用createLoginUser方法

createLoginUser方法会根据user信息去调用getMenuPermission方法

getMenuPermission方法根据传递的用户信息,获取用户的菜单数据权限并返回

回到createLoginUser方法,使用用户信息和权限生成一个LoginUser类

菜单权限查询成功后,输出和更新此用户的登录ip和时间等各种信息

最后使用之前生成的loginUser类(包含用户信息和权限)生成token

最后回到login函数通过ajax返回token

然后执行then后面的函数设置用户的token

最后回到点击按钮的事件,如果前面的函数都没有异常就会跳转到后台首页

进入首页之前,前端设置的路由守卫会判断Vuex中是否存在用户的key(用户的标识)

如果不存在会去请求/getinfo接口,

把用户和权限的集合用ajax返回给前端

将后端返回的数据通过函数赋值给VUEX中的变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值