900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 随便记录一下:微信公众号后台管理系统 获取需要扫描的二维码

随便记录一下:微信公众号后台管理系统 获取需要扫描的二维码

时间:2019-02-22 01:07:19

相关推荐

随便记录一下:微信公众号后台管理系统 获取需要扫描的二维码

今天心血来潮,看了一下微信扫码登陆.这里记录一下,重申一下–做事需要耐心!!!

微信公众号官网:mp.

我们需要分析的是二维码图片如何拿到了,当然,强大的f12绝对可以,

拿到二维码后发现是一个可访问地址:https://mp./cgi-bin/scanloginqrcode?action=getqrcode&random=1632554160456

在新的浏览器打开,噢居然没有展示? 那么继续分析有显示的是为什么呢? 在访问过程中可以在同浏览器可以打开,在不同浏览器打不开,这可以排除token等,说明是cookie,扒开请求头的外衣,cookie分别为:ua_id,uuid,那么是不是很简单呢,逐个寻找请求吧!

这里直接说在哪吧,不废话了,找东西的方法很简单,

步骤1访问首页:

从进入https://mp./页面那一刻,请求这个地址时候可以获得ua_id;

步骤2开始登录:

从开始登录请求:https://mp./cgi-bin/bizlogin?action=startlogin中获取uuid;

这里说一下微信的推测逻辑哈:

访问首页:获取ua_id,

拿着ua_id校验会话权限:https://mp./webpoc/cgi/chat/checkChatPermission?type=15&grayType=random&token=&lang=zh_CN&f=json&ajax=1,如果返回false,请求头会带回来wxuin的cookie,再次校验,

bizlogin进行预登陆:https://mp./cgi-bin/bizlogin,预登陆返回成功,进行接下来开始登录

startlogin 开始登陆:https://mp./cgi-bin/bizlogin?action=startlogin,开始登陆后返回uuid,

这时,获取二维码:https://mp./cgi-bin/scanloginqrcode?action=getqrcode&random=1632554160456

接下来,坚挺登陆状态:https://mp./cgi-bin/scanloginqrcode?action=ask&token=&lang=zh_CN&f=json&ajax=1,从status判断状态(这里不罗列状态了,简单说一下,有6中),

最后,下次再说,提示一下bizlogin设置cookie,注意loginhook,从redirect_url中获取token,

贴代码给你示范一下,以下为nodejs代码

/*** 步骤1,看代码不多说*/async function getHtml() {const indexHtmlResp = await axios.get('https://mp./', {headers: {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}});let cookieArr = indexHtmlResp.headers['set-cookie'];console.log(cookieArr[0].split(';')[0]);//主要获取 ua_idreturn cookieArr[0].split(';')[0];}//第二步:async function startLogin(uaid) {let url = 'https://mp./cgi-bin/bizlogin?action=startlogin';const resp = await axios.post(url, {userlang: 'zh_CN',redirect_url: '',login_type: 3,sessionid: +new Date + "" + Math.floor(100 * Math.random()),token: '',lang: 'zh_CN',f: 'json',ajax: 1}, {headers: {'content-length':99,'origin':'https://mp.','content-type':'application/x-www-form-urlencoded; charset=UTF-8','referer': 'https://mp./','user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36','cookie': uaid},transformRequest: [function (data) {let ret = ''for (let it in data) {ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'}ret = ret.substring(0, ret.lastIndexOf('&'));return ret}],});//获取uuidconsole.log(resp.data);console.log(resp.headers['set-cookie'][0].split(';')[0]);return resp.headers['set-cookie'][0].split(';')[0];}function refreshQrcode() {// this.getQrcode();let qrcodeSrc = 'https://mp.' + "/cgi-bin/scanloginqrcode?action=getqrcode&random=".concat(+new Date);console.log('访问图片地址:',qrcodeSrc)}//汇总async function test() {//get uaidlet uaid = await getHtml();//get wxuin// let wxuin = await checkChatPermission(uaid);//preLogin//await bizLogin(uaid);//start loginlet uuid = await startLogin(uaid);//get qrcodeSrcrefreshQrcode()console.log("cookie:==>",uaid+';'+uuid);//qrcodeSrc need cookie// console.log(uaid + ';' + wxuin + ';' + uuid);}//执行代码test()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。