fiy登录校验流程

235 阅读2分钟

作为一个编程菜鸟,第一次拿到开源项目,实在无从下手,几经周折,好不容易将项目跑起来想用postman调试api接口,却发现始终过不去权限校验,便开始了各种尝试,以往的经验告诉我首先需要登录拿到token,然后携带token去请求数据,就是最常用的思路,jwt的玩法,于是。。。

1、第一次尝试

通过f12发现在登录时候需要携带

username:用户名
password:密码
code:验证码
uuid:唯一标识

用户名跟密码很容易解决,但是验证码跟uuid不知道从何处获取,无奈之下开始看源码

2、获取验证码以及uuid

  1. 分析:在登录校验的过程中需要校验验证码以及用户、用户密码,用户名以及密码校验通过数据库比对就能解决,验证码是如何校验的呢,前端带的uuid是干嘛的?
  2. 通过源码发现在本项目中验证码用的库是base64Captcha,第一次请求拿到的验证码以及id,后续在校验的时候会携带id去获取code并与前端携带的code进行比较,验证无误即可
  3. 通过接口/api/v1/getCaptcha获取到base64的验证码,通过base64(随便找个在线解码工具就可以)解码获取到验证码,并接返回的id一同塞到登录请求参数中
{
    "username":"admin",
    "password":"123456",
    "code":"9730",
    "uuid":"JmOZNVCE2smRSvq7CG6A"
}
  1. 通过上述参数可以获取到token,然后在请求api时候将token塞到Authorization中,此处注意type要根据jwt中定义的type类型进行选择,此处选择Bearer Token,不同的类型代表不同的加密算法,然后将获取到的token字符串添加便可以请求到数据

image.png

3、反思与收获

类似此类问题在后续的学习中首先还是需要弄清楚登录过程中每次字段的作用,如何顺利拼接一个合格的请求数据,然后保证能顺利拿到token,弄清楚token校验的类型,以及token是放在请求体还是请求头中都会影响最后的结果