淘优惠

淘优惠

nodejs采集淘宝、天猫网商品详情数据以及解决_m_h5_tk令牌及sign签名验证(2023-09-09)

热门文章 0

淘宝、天猫对于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天猫群,上万人一起互助