参考文档
模拟请求数据修改翻页后,提示令牌不正确。分析提交参数,可知sign是关键,并且时间戳t参与计算,因为相同参数请求,t和sign是变化的。
第一个问题:sign的计算公式?
我特地安装了py,直接运行他的代码。但是计算结果跟我需要的不一样。
第二个问题:哪些参数参与计算?
我不断的尝试减少参数,但是结果始终匹配不上。
我查看他的js代码,需要弄清楚918dff33bd1fc4a34477abe44c850c9c是什么,js计算方式是否过时了?
通过搜索网站的js代码可知
918dff33bd1fc4a34477abe44c850c9c是token,s是13位时间戳,c是appKey,再加上参数。
先拼接成字符串,再进行加密。
同时,我把网站的加密js也复制下来,对比发现生成的sign是一样的,说明不是js代码问题。
第三个问题:token怎么来?
第二参考链接文章有提到,token是提取cookie中_m_h5_tk值,下划线的前边。
第四个问题:为什么结果匹配不上
在我要放弃测试的那一刻,只用data参数计算,结果就正确了。
最后确认,sign就是拼接字符串,md5的结果。
第五个问题:令牌失效。
经过测试,当令牌出现错误、失效的时候,新的token会出现在返回响应头中。