标签:qq 管理系统 weixin 微信 二维码 cookie mp https com
今天心血来潮,看了一下微信扫码登陆.这里记录一下,重申一下–做事需要耐心!!!
微信公众号官网:mp.weixin.qq.com
我们需要分析的是二维码图片如何拿到了,当然,强大的f12绝对可以,
拿到二维码后发现是一个可访问地址:https://mp.weixin.qq.com/cgi-bin/scanloginqrcode?action=getqrcode&random=1632554160456
在新的浏览器打开,噢居然没有展示? 那么继续分析有显示的是为什么呢? 在访问过程中可以在同浏览器可以打开,在不同浏览器打不开,这可以排除token等,说明是cookie,扒开请求头的外衣,cookie分别为:ua_id,uuid,那么是不是很简单呢,逐个寻找请求吧!
这里直接说在哪吧,不废话了,找东西的方法很简单,
步骤1访问首页:
从进入https://mp.weixin.qq.com/页面那一刻,请求这个地址时候可以获得ua_id;
步骤2开始登录:
从开始登录请求:https://mp.weixin.qq.com/cgi-bin/bizlogin?action=startlogin中获取uuid;
这里说一下微信的推测逻辑哈:
访问首页:获取ua_id,
拿着ua_id校验会话权限:https://mp.weixin.qq.com/webpoc/cgi/chat/checkChatPermission?type=15&grayType=random&token=&lang=zh_CN&f=json&ajax=1,如果返回false,请求头会带回来wxuin的cookie,再次校验,
bizlogin进行预登陆:https://mp.weixin.qq.com/cgi-bin/bizlogin,预登陆返回成功,进行接下来开始登录
startlogin 开始登陆:https://mp.weixin.qq.com/cgi-bin/bizlogin?action=startlogin,开始登陆后返回uuid,
这时,获取二维码:https://mp.weixin.qq.com/cgi-bin/scanloginqrcode?action=getqrcode&random=1632554160456
接下来,坚挺登陆状态:https://mp.weixin.qq.com/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.weixin.qq.com/', {
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_id
return cookieArr[0].split(';')[0];
}
//第二步:
async function startLogin(uaid) {
let url = 'https://mp.weixin.qq.com/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.weixin.qq.com',
'content-type':'application/x-www-form-urlencoded; charset=UTF-8',
'referer': 'https://mp.weixin.qq.com/',
'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
}
],
});
//获取uuid
console.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.weixin.qq.com' + "/cgi-bin/scanloginqrcode?action=getqrcode&random=".concat(+new Date);
console.log('访问图片地址:',qrcodeSrc)
}
//汇总
async function test() {
//get uaid
let uaid = await getHtml();
//get wxuin
// let wxuin = await checkChatPermission(uaid);
//preLogin
//await bizLogin(uaid);
//start login
let uuid = await startLogin(uaid);
//get qrcodeSrc
refreshQrcode()
console.log("cookie:==>",uaid+';'+uuid);
//qrcodeSrc need cookie
// console.log(uaid + ';' + wxuin + ';' + uuid);
}
//执行代码
test()
标签:qq,管理系统,weixin,微信,二维码,cookie,mp,https,com 来源: https://blog.csdn.net/qq_43160070/article/details/120635159
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。