【week7作业】若依Vue登录流程后端分析

目录

一:前端部分简析

1.前端登录页面

2.前端流程分析

二:后端部分分析

1.后端需要做什么?

2.接口代码

3.login方法调用

4.validataCapatcha方法调用

5.loadUserByUsername方法调用

6.调用createLoginUser方法

7.调用getMunuPermission方法

8.调用两个CreateToken方法

9.返回给前端

三:总结

四:参考资料


注:演示版本为若依Vue3.8.2

一:前端部分简析
1.前端登录页面

2.前端流程分析

        登录按钮触发 handleLogin 方法,通过 this.$refs.loginForm.validate 验证用户的输入数据是否符合规则。如果验证通过,则执行登录流程;否则,阻止登录请求。

        在登录流程中,前端构建了一个包含用户名、密码、验证码、和验证码标识(UUID)的数据对象。

        前端调用 this.$store.dispatch("Login", this.loginForm) 方法,这个方法会触发 store 中的 Login action。

        Login action 接受登录信息并通过 login 函数发起登录请求,通过 HTTP POST 请求发送到后端的 /login 路径。这个请求包含了用户的登录信息,如用户名、密码、验证码以及验证码标识。

        后端接收登录请求,根据请求中的用户名和密码,验证用户的身份。如果验证成功,后端通常会生成一个令牌(token)来表示用户已登录。

        后端将生成的令牌作为响应的一部分返回给前端,前端收到登录成功的响应,将令牌保存到本地。

二:后端部分分析
1.后端需要做什么?

①验证验证码是否正确(过期、输出错误)

②调用security api来进行用户验证,这里会根据username来查询数据库

③判断是否有这个用户,如果有这个用户,接着判断是否是超管(如果是超管,就不会去查询对应的菜单权限;不是超管,会根据userId查询数据库,来获取对应的菜单权限)

④把对应的信息填充在 LoginUser类中,security中,也会记录当前登录的用户信息

⑤最后,更新用户登录ip、时间,然后生成token,返回给前端

2.接口代码

这段代码

①接收前端传来的登录信息,包括用户名、密码、验证码等。
②调用 loginService.login 方法来验证用户的登录信息。
③如果验证成功,生成一个令牌(token)用于后续的身份验证,并将该令牌作为响应返回给前端

3.login方法调用

        这段代码主要用于用户登录认证的处理,包括验证码验证、用户名密码验证、登录信息记录和生成令牌

4.validataCapatcha方法调用

这段代码用来校验验证码

5.loadUserByUsername方法调用

authenticationManager.authenticate() 是security内部api,web登录时,内部会调用 authenticationManager.authenticate()对账号和密码做验证,具体细节不做介绍。最终security会调用UserDetailsServiceImpl.loadUserByUsername(String username) 方法,而若依重写了此方法:

6.调用createLoginUser方法

在loadUserByUsername函数最后调用,用来返回用户数据

7.调用getMunuPermission方法

在返回用户数据的时候被调用,进行权限的检测

8.调用两个CreateToken方法

在上面代码的最后一行,调用了下面这个方法,为的是创建一个安全的JWT令牌

9.返回给前端

至此,流程走到最后,使用return ajax返回给前端

三:总结

四:参考资料
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值