前提说明
通过抓包得知:
- 手势签到&签到码签到,本质上是前端页面的验证,而我们可以通过后端接口直接绕过前端进行签到
- 同理,位置签到,本质也是传给后端经纬度,只要我们能够获得到签到位置的经纬度也可以直接签到
- 拍照签到:需要先将照片上传到学习通云盘中,然后学习通回给一个参数objectId,通过这个参数就可以进行拍照签到了,所以需要经过两个接口请求
- 二维码签到,是通过相机扫描二维码进行解码获得到了enc参数,然后将enc传参进行签到
- 多人二维码签到的本质就是共享enc参数
- 无视设备:通过代码编程,用接口代替设备,所以可以无视设备绑定需求
- 定时签到:本质上是加了一个定时器,然后进行监听,不断监听课程活动是否有新的签到内容,如果有就会自动签到,在技术上可以通过Redis + RocketMQ + Spring Security + Spring Scheduler等技术配合使用
- 预签到接口,所有签到接口访问前都必须进行一次预签到,强制需求
解决问题
全模式下的签到流程:
- 手势签到&签到码签到
- 位置签到
- 拍照签到
- 二维码签到
- 共享签到&定时签到