Halo开源项目(1)---登录模块

SpringBoot注入的三种方式

一. 寻找登录模块的入口

1.1 进入登录界面

http://localhost:8090/admin/

1.2 输入账号密码

image-20210706193744416.png

1.3 F12进入Network界面

发现发送了一个请求

login-1.jpg

1.4 进入idea --> ctrl+shift+T 搜索

login-2.jpg

可以发现一个入口, 点击进入

1.5 找到AdminController类

类路径:run.halo.app.controller.admin.api.AdminController

login-3.jpg

  1. 请求路径
  2. Swagger接口说明
  3. 手写的cache锁
  4. 实现的业务 —> 打断点
  5. @Valid 验证参数格式是否正确

1.6 打断点Debug

  1. idea以debug模式运行项目
  2. 重复1-2操作,登录博客

二.观察项目内部业务实现

image-20210706195213431.png

2.1 F5进入结构内部

到达类路径run.halo.app.service.impl.AdminServiceImpl

image-20210706195409627.png

authCodeCheck 见名知意: 是用来检查用户是否授权的操作。

返回值: AuthToken, 用来确定用户登录是否登录过。当客户端多次向服务端请求数据时,服务端就需要多次从数据库中查询用户名和密码并进行对比,判断用户名和密码是否正确,并作出相应提示。但这样无疑会增加服务器端的运行压力,是否可以有一种方式只需要验证用户就是之前的用户而不需要每次在客户端请求数据时都需要查询数据库判断用户名和密码是否正确。在这种请求下,引入了token来解决服务器端多次访问数据库问题。

(Token和Session的用法区别)

@NotNull :用来验证参数是否为空。

image-20210706200113842.png

swagger接口文档中有两个关于登录的请求:

image-20210706200754378.png

2.2 /api/admin/login

检查用户是否授权的操作—>点击跳转登录模块具体操作

分为几步:

  1. 根据loginParam获取User对象
  2. 两步验证码验证, 需要在系统设置中开启
  3. 检查用户是否已经登录过了
  4. 返回一个随机生成的token, 成为json对象. ----> 储存至本地内存, 以保持登录

2.3 /api/admin/login/precheck

MFA双因子认证—> 点击跳转登录模块具体操作

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值