js京东联盟api怎么用

JavaScript029

js京东联盟api怎么用,第1张

js京东联盟api怎么用

1、首先,登录京东联盟官网,在“开发者中心”中申请开发者账号,获取AppKey和AppSecret。

2、使用Node.js安装京东联盟API SDK,使用npm install jdunion-sdk命令安装。

3、在Node.js程序中引入SDK,并初始化SDK,传入AppKey和AppSecret,获取接口调用凭证。

4、调用API接口,传入参数,获取响应结果。

老规矩先用错误信息登陆一下抓一下包,看看有那些post字段:

大概我们就知道我们要分析的字段有nloginpwd其余字段还不清楚,就在上下在看看其他数据包,根据pubkey我们猜测加密方式大概是RSA,继续查看其他数据包,找到一个有价值的get包

信息是:

没有发现明确的关键字,但是可以猜想bg、challenge、patch应该和我们的加密参数相关,但是不确定,只有继续分析加密的js片段:

其中好几个字段都是$("#??")格式,这种表示是来自页面的,那在看看网页源码

果然发现了很多有价值的东西在post表单中的,其中只有两个参数是需要单独获取的,其余都是从html源码里面解析出来的

authcode来源

是获取的源码中的一个值,再看源码

看样子是在验证码操作的时候触发的一个请求,返回的authcode的值,查看authcode请求的数据包

这个请求看起来不是那么友好,有好几个疑似加密字段,这个参数暂时放放,继续分析我们的passWord的加密。

继续深入getEntryptPwd($('#nloginpwd').val()),查看源码

核心的就两行

encrypt.setPublicKey(pubKey)return encrypt.encrypt(pwd)这必定是RSA加密无疑了,继续查看源码,单独的一个源码文件,一共3300多行,删减版如下

JSEncrypt是前端使用的实现RSA加密的库,看样子应该比较标准,那就试试能不能改写了,复制全部源码到node.js,会提示navigator、window未定义,这个问题很简单,在文件头定义

var navigator = this

var window = this

然后在文件尾部写个调用程序试试

是可以成功返回RSA加密结果的

京东的post请求不是太难,参数也能在源码中找到,但是他的难度在发出post请求之前的一个get请求,这个get请求和验证有关,和用户名相关,简单看了一下感觉有点复杂,留在第二篇讲获取authcode参数的其他参数是怎么来的。

ID:Python之战

|作|者|公(zhong)号:python之战

专注Python,专注于网络爬虫、RPA的学习-践行-总结

喜欢研究和分享技术瓶颈,欢迎关注

独学而无友,则孤陋而寡闻!