nodejs采集淘宝、天猫网商品详情数据以及解决_m_h5_tk令牌及sign签名验证(2023-09-09)
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
淘宝、天猫对于h5的访问采用了和APP客户端不同的方式,由于在h5的js代码中保存appsercret具有较高的风险,mtop采用了随机分配令牌的方式,为每个访问端分配一个token,保存在用户的cookie中,通过cookie带回服务端分配的token, 客户端利用分配的token对请求的URL参数生成摘要值sign。
MTOP利用这个摘用值和cookie中的token来防止URL篡改。
当本地cookie中的token为空时(通常是第一次访问),mtop会收到”FAIL_SYS_TOKEN_EXOIRED:: 令牌过期“这个错误应答,同时mtop会生成token写入cookie中(response.cookies)。
第二次请求时,js通过读取cookie中的token值,按照约定的算法生成sign, sign在mtop的请求中带上,mtop通过cookie中和token用同样的方式计算出sign,与请求的sign进行比较,检查通过将返回api的应答,失败提示“FAIL_SYS_ILLEGAL_ACCESS:: 非法请求”
cookie中的token是有时效性的,遇到token失效时,将收到应答"FAIL_SYS_TOKEN_EXOIRED:: 令牌过期", 同时会写入新的token,js利用新的token重新计算sign并重发请求。
关于cookie中的token的自我检查,由于token在cookie中是明文的,可能会被仿冒,在输出的cookie中包含一个用非对称密钥的公钥加密后的token, MTOP在每次请求时会先检查cookie中的token是否是由服务端分配出去的(利用加密后的token和私钥还原token,与回传的明文token比较)
chrome打开淘宝网,按f12,全局搜索:sign,找到如下位置:
(天猫sign签名算法位置)
关于sign的生成公式:
let a=ck_token+ "&" + t + "&" + g + "&" + JSON.stringify(data);
let asign=sign(a);
例如:sign=51d9be5624c7179608223【【微信】】
关于cookie的有效时长,cookie的有效时长为7天,但是token的有效时长目前为60分钟
_m_h5_tk: 格式为 明文token_expireTime, 从response.cookies处获取,如: 956ec8fa4134b1cf3ef4c6a2673274e9_1693194681803
token就是956ec8fa4134b1cf3ef4c6a2673274e9
很简单,即时间戳
let t=(new Date).getTime();
一般是固定数值,如:appKey=12574478
一般是提交的数据,id为商品id
let data=;
苹果官方发布的iphone15 iphone15官方消息
9月15日iPhone15开始预售,不出意外,苹果官网崩了6-7分钟。
20点整,橙柿记者打开【【淘密令】】 ,还没开始预购,显示”马上就好“,可能是抢购人数太多,挤爆了?崩了?
换个平台,打开Apple淘宝官网,结果显示访问页面错误……
然而仅仅过了5分钟,淘宝【【淘密令】】 就显示已售光……
京东也显示全部无货状态。
20:08分,再次回到apple store,可以下单了,却一直卡在付款界面!
下单完成后,显示8个工作日发货。
有网友晒单,最早的可9月22日到店取货。
也有网友是显示9月22号24点前发货。
网友:?抢了20分钟,屏幕里还在转圈圈……
哆罗是只猫:抢个锤子【【淘密令】】,20分钟了还在转圈圈,选择官网就是个错
佐久间草莓:说好不买的呢?各大平台一秒没
我的小鳄鱼呢:真的服了,都到填姓名邮箱了,最后一步告诉我店里没货了。
laYla_呆 : 抢到了,钱都付完了订单页面出错误了
里昂安安安安:居然抢到了,就,挺突然的!
好难懂的姑娘 : 气死,?还没打开就没了
Nanami_17:究竟谁在抢啊?打开就没了
来源:橙柿互动
..天猫群聊是什么,天猫群聊是什么,2023618天猫群,快进来,最新淘宝年中大促天猫互点微信群怎么进,618 理想生活狂欢季天猫群聊是什么,天猫618 狂欢节2023618天猫群,上万人一起互助