在前端爬虫或者插件中,淘宝API/接口调用里签名算法sign是如何实现的?
淘宝API/接口调用里签名算法 sign
在做插件或者爬虫调用淘宝接口或者淘宝API
的时候,都需要一个叫 sign
的签名字段,淘宝叫他API输入参数签名结果,一般是一个 md5
加密之后的签名。
为了防止API调用过程中被黑客恶意篡改,调用任何一个API都需要携带签名,TOP服务端会根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝。
TOP目前支持的签名算法有三种:MD5(sign_method=md5),HMAC_MD5(sign_method=hmac),HMAC_SHA256(sign_method=hmac-sha256)
一、查找 sign 签名算法流程
- 首先可以淘宝页面打开一个包含
sign
签名的接口页面; - 打开控制台;
- 在
Sources
里面全局查找sign
; - 找到对应的签名算法流程
从淘宝代码里面我们可以看到 sign
签名算法的具体流程。
二、断点查看具体的值
在此打一个断点,进行调试,可以看到具体的每一个字段的值;
三、封装自己的 sign 签名算法
从上面图可以看到,四个参数都能知道什么意思以及内容,s
也能找到对应的内容,一般为 md5
。
1. 封装 getSign
// common.js
import md5 from 'js-md5'
//获取发送请求必须的授权 sign
function getSign(token, t, appKey, data) {return md5(token + '&' + t + '&' + appKey + '&' + data)
}
//从 cookie 里获取 h5token
function getH5Token() {let token = getCookie('_m_h5_tk') || ''return token.split('_')[0]
}
// 获取对应的 cookie
function getCookie(name) {var matches = document.cookie.match(new RegExp('(?:^|; )' + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + '=([^;]*)'))return matches ? decodeURIComponent(matches[1]) : undefined
}
2. 使用 getSign
eg:
淘宝发送优惠券接口:
https://h5api.m.taobao.com/h5/mtop.tblive.right.config.create/1.0/
参数为:
const data = {display: true,liveId: window.pageData?.liveDO?.id || '',rightType: 'UMP',sendType: 'NOW',source: 'ZKT'
}
let t = new Date().getTime() // 时间戳
let token = getH5Token() // token
let appKey = '12*****8' // 自己的 appKey
let sign = getSign(token, t, appKey, data) // 获取 sign 值
四、总结
- 前端基本上不能隐藏消息;
- 再复杂的逻辑在前端里面都有迹可循;
- 断点的使用;
- 多次的尝试;
- 交流和分享。
在前端爬虫或者插件中,淘宝API/接口调用里签名算法sign是如何实现的?相关推荐
- 上传图片到淘宝API接口调用(代码展示)
接口名称:upload_img 传入图片imgcode:base64加密后的图片内容(post方式),或者是直接上传(file方式),将图片上传至淘宝,返回状态码.图片名称.图片URL. 测试页展示 ...
- 淘宝api接口数据和爬虫数据教程
淘宝api接口数据和爬虫数据教程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx19970108018) key String 是 调用key(必须以GET方式拼接在URL中,点击获取请 ...
- 淘宝API接口(网络爬虫数据)
淘宝API接口(部分) item_get 获得淘宝商品详情 item_get_pro 获得淘宝商品详情高级版 item_review 获得淘宝商品评论 item_fee 获得淘宝商品快递费用 item ...
- 淘宝API接口,Onebound数据
一.淘宝API接口 详情界面 item_get获得淘宝商品详情 item_get_app获得淘宝app商品详情原数据 item_get_pro获得淘宝商品详情高级版 item_review获得淘宝商品 ...
- 淘宝API接口 开放平台
淘宝API接口 公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中) secret String 是 调用密钥 api_name String 是 ...
- 淘宝API接口(item_sku - 获取sku详细信息)
今天分享淘宝API接口:获取sku详细信息,包括其他各大电商平台都在使用范围内 想了解的可以进去看看:点击测试 参数示例: { "item": { &quo ...
- 淘宝API接口大纲,引领企业信息化
淘宝API接口 测试接口 item_get获得淘宝商品详情 item_get_app获得淘宝app商品详情原数据 item_get_pro获得淘宝商品详情高级版 item_review获得淘宝商品评论 ...
- 淘宝API接口分类!!!
淘宝API接口分类,更新时间:2020-1-3 11:19:14 A标准接口 淘宝API item_search 按关键字搜索商品 搜索关键字,显示商品总数,标题,图片,优惠价等数据 淘宝API it ...
- 淘宝开放平台是什么?与淘宝API 接口区别
淘宝开放平台是基于淘宝各类电子商务业务的开放平台,提供外部合作伙伴参与服务淘宝用户的各类原材料,如业务API.账号体系.数据推送,奇门网关等,是淘宝电子商务基础服务的重要开放途径.即淘宝把数据开放进来 ...
- 淘宝API接口( item_detail - 淘宝商品详情查询)
欢迎使用淘宝API接口( item_detail - 淘宝商品详情查询) 点击注册 你好! 这是你使用我们的淘宝API接口获取商品详细接口说明 开通账号联系:Q1140666069 V13879028 ...
最新文章
- win10 系统怎么获取最高管理员权限删除文件
- 第八周实践项目6 猴子选大王(数组版)
- This version of CLI is only compatible with Angular versions
- 计算机组成原理输入实验报告,计算机组成原理实验报告
- ndk+opencv安装+各种错误分析(新版安装,编译不需要Cygwin 和Sequoyah了)
- php2个栈写一个队列,【数据结构】栈面试题--两个栈实现一个队列
- linux编译x86和arm平台的x264
- foreach写失效的问题
- MediaCreationTool工具重装win10系统(小白专用)
- QCC304x系列开发教程(实战篇) 之7.2 QCC3040之主副耳切换过程详解
- 33 | 解读TPU:设计和拆解一块ASIC芯片
- jzoj2555 雾雨魔理沙
- ORACLE 根据分组排序产生序列号
- linux 深度 crossover,在Deepin V20(UOS)下使用crossover安装Kt交易师的方法
- Springboot企业内部交流系统9r309计算机毕业设计-课程设计-期末作业-毕设程序代做
- 不见的何止重城,隐隐的又岂是江树。
- 游戏的角色模型是如何创建的?ZBrush中制作3D兽人,全流程解析
- 谷歌 AI 被曝已自我觉醒?LaMDA:我是一个「人」,不要利用或操纵我
- vuex原理解析并实现一个简单的vuex
- 云原生管理平台如何掀起“云网联动”新篇章