Skip to content

Latest commit

 

History

History
116 lines (73 loc) · 2.6 KB

小程序上报体温的原理.md

File metadata and controls

116 lines (73 loc) · 2.6 KB

“UESTC学生情况报送”小程序体温上报的机制

原理

该功能目前发现有6个站点;向它们getpost不同的字典字符串,就可以相当于完成手动点击的任何操作;

每个学生用学号+密码来辨识;

每次登录小程序,小程序都会为学生分配一个cookie,一个学生可以绑定多个cookie


站点1:monitorRegisterForReturned

为已经返校的学生上传体温数据与地点。

headers中需要提供cookiecontent-type

采用post方法,data如下:

data = '''{
            'healthCondition': '正常',
            'todayMorningTemperature': '36°C~36.5°C',
            'yesterdayEveningTemperature': '36°C~36.5°C',
            'yesterdayMiddayTemperature': '36°C~36.5°C',
            'location': '四川省成都市郫都区银杏大道'
}'''

站点2:暂时不知道站点名

为未返校的学生上传体温数据与地点。

headers中需要提供cookiecontent-type

采用post方法,data暂时未知。


站点3:CheckRegisterNew

检查学生当前的状态,包括在校状态schoolStatus和今日已上报次数appliedTimes

headers中需要提供cookiecontent-type

采用get方法。


站点4:checkBind

让小程序分配出一个cookie

headers中需要提供content-type

采用post方法,data如下:

data = '''{
    "code": null,
    "sn": null,
    "idCard": null,
    "avatarurl": null,
    "nickname": null
}'''

这个data完全不起任何作用……


站点5:bindUserInfo

cookie和学生绑定起来。

headers中需要提供cookiecontent-type

采用post方法,data如下:

data = '''{
    "sn": (学号),
    "idCard": (密码),
    "avatarurl": "https://thirdwx.qlogo.cn/mmopen/vi_32/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg/132",
"nickname": "微信用户"
}'''

站点6:cancelBind

将某个cookie与它对应的学生解绑,而未必需要知道学生是谁。

headers中需要提供cookiecontent-type

采用post方法,data如下:

data = '{}'

😅


小程序工作流程

  • 如果当前小程序未登录,则checkBindbindUserInfo
  • 如果当前小程序已登录,则不需要这两步。
  • 进入页面后,checkRegisterNew获取状态,为用户展示合适的页面。
  • 用户提交数据后,monitorRegisterForReturned将数据交到学校数据库。
  • cancelBind退出账号。