关于CSDN微信登录接口的研究
代码
import requests
import re
from threading import Thread
import time
import requests
from io import BytesIO
import http.cookiejar as cookielib
from PIL import Image
import sys
import psutilrequests.packages.urllib3.disable_warnings()class show_code(Thread):def __init__(self,url):Thread.__init__(self)self.url = urldef run(self):response = requests.get(self.url)img = Image.open(BytesIO(response.content)) # 打开图片,返回PIL image对象img.show()def login():session = requests.session()session.cookies = cookielib.LWPCookieJar(filename='/home/wshuo/.cookie/csdn.txt') #这个写入cookie保存的路径response = session.get('https://open.weixin.qq.com/connect/qrconnect?appid=wx0ae11b6a28b4b9fc&scope=snsapi_login&redirect_uri=https%3A%2F%2Fpassport.csdn.net%2Fv1%2Fregister%2FpcAuthCallBack%3FpcAuthType%3Dweixin&state=csdn&login_type=jssdk&self_redirect=default&style=white&href=https://csdnimg.cn/release/passport/history/css/replace-wx-style.css',verify=False)uuid = re.findall('<img class="qrcode lightBorder" src="(.*?)" />',response.text)[0]img_url = 'https://open.weixin.qq.com' + uuidt= show_code(img_url)t.start()uuid = uuid.split('/')[-1]url = 'https://long.open.weixin.qq.com/connect/l/qrconnect?uuid='+uuidwhile 1:print(url)response = session.get(url,verify=False)code = re.findall("window.wx_code='(.*?)'",response.text)print(code)if code != ['']:for proc in psutil.process_iter(): # 遍历当前processif proc.name() == "display": # 如果process的name是displayproc.kill() # 关闭该processbreaktime.sleep(1)url = 'https://passport.csdn.net/v1/register/pcAuthCallBack?pcAuthType=weixin&code=%s&state=csdn' % code[0]print(url)session.get(url)session.cookies.save()print('登录成功!')if __name__ == '__main__':login()
大致逻辑就是csdn 在微信那边申请了一个接口(应该是参数appid),用于微信登录的,我们访问这个url,获取到其中的二维码地址,然后加载出来, 然后程序开始一直像一个url 发送请求(其实是用户扫描完二维码才会有响应),直到响应中有一部分字符串(应该是js的代码,返回字符串说明用户微信扫描已经确认登录了),然后把这个字符串当做参数去请求 csdn 的一个登录接口,返回响应的时候就会设置 cookie 了
其他
这个不仅仅是是 csdn 微信登录接口的逻辑, 也是 所有所有网站微信扫码登录的逻辑, 只要找到 网站在 微信那边登录的url,还有 最终请求的一个登录接口,直接替换上面的俩段url 就可以了,另外需要注意的是,有些网站最后的登录接口需要一个请求头,我登录简书的时候遇到这个问题,在请求头里面添加个 user-agent 就解决了。
关于CSDN微信登录接口的研究相关推荐
- 2022全新适配微信登录接口 wordpress博客系统资讯资源变现下载小程序源码
介绍: 2022全新适配微信登录接口 Wordpress博客系统资讯资源变现下载小程序源码 因为由于微信的新规从11月9号后新上线的小程序将不能获取用户头像和名字了 所以微信放需要适配全新的,支持让用 ...
- 人人商城v3.28.41修复11月8日微信登录接口,公众号和小程序同步修复
人人商城v3.28.41修复11月8日微信登录接口,公众号和小程序同步修复 独家修复,可二开.可封装原生APP
- Android应用调用微信登录接口
很多App都是需要用户登录的,例如电商类的APP,用户登录后可以查看自己的购物订单,浏览痕迹等,登陆的话又可以分为多种登录,例如QQ,微信,微博,支付宝等,那么接下来这篇文章讲诉的是应用如何调用微信的 ...
- 第三方应用微信登录接口
重点内容 https://www.cnblogs.com/benwu/articles/5705604.html 微信登录接入 微信登录遵循协议Aouth2.0中的授权码模式 Aouth2.0授权码模 ...
- 网站使用微信登录接口,所踩的坑...
一.如何开通微信公众号.微信开发平台.授权认证.接口权限申请等等,这些不在本文描述,请参考官方资料. 二.假设已顺利完成第一步的工作,现在需要在自己开发的网站(PC端.移动端,注意两者略有不同,下文有 ...
- 第三方(APP或网页)调用微信登录接口,做微信登录
微信接口调用,真的是难者不会,会者不难只要做过一遍之后以后再做就很简单了,当初我一个人因为么有人请教,在这一块耽误了好几天的时间,网上的教程也都搜过,可能因为没接触过吧,看的也不是很明白,今天来做一个 ...
- 网站使用微信登录接口
- 企业微信小程序_授权登录接口获取用户userid
文章目录 一.前置知识 1. 阅读 企业微信小程序开发文档 2. 企业微信小程序登录流程 3. 微信小程序区别 二.前端部分 2.1. 调用登录接口 2.2. 请求后端接口 2.3. 项目源码 三.后 ...
- 微信第三方登录接口开发
微信登录接口开发须知 APP登录接口 PC网站登录接口 微信移动网页登录接口(又称微信公众号授权登录) 移动端非微信自带浏览不支持微信登录 微信移动网页登录接口(又称微信公众号授权登录) 先要与开放平 ...
最新文章
- springboot 优雅停机_Spring Boot 2.3 新特性优雅停机详解
- tomcat 和 jdk 版本 对应关系
- jquery实现点击浏览器后退,上一页面自动刷新
- java logging 格式化_Spring源码使用java.util.logging打印日志
- C# Zip解压缩,规避 [content_types].xml 文件
- Unix系统使用的地址索引结构有什么特点?
- html中鼠标移走的伪元素,a标签的伪元素的应用——link,hover,visited,active
- 华硕飞行堡垒atk驱动在哪_11月8日华硕再撒大额福利 满减优惠价机不可失_第1页...
- PS视频降噪去噪点插件;DeNoise英文可选 支持CS6- cc2019
- 一些有意思的函数(连载中)
- BS模型和CS模型的介绍和区别
- python/sympy求解矩阵方程
- G 蛋白偶联受体与小分子化合物的相互作用
- Valens HDBaseT VCN2K HDMI 1.4接收/发送
- 一起开心2020蓝桥寒假训练(二)7-6 彩虹瓶 (25分)用到栈,队列
- java源代码转jar包
- matlab单相桥式全控整流电路仿真
- mysql中用来取余数的函数是_MySQL函数 练习题
- ots在线考计算机的word,OTS在线考试系统.doc
- Sublimit Text 3 快捷键
热门文章
- java程序员的相亲指南,你确定不看看吗?
- Linux 查看并杀掉tomcat进程
- PHP实现抓取HTTPS内容
- 最新q绑在线查询源码,低配版社工库恶搞版,纯html源码可直接使用
- java直板手机_新一代街机之选!诺基亚S40金属直板6300评测
- “小程序+直播”怎样搅动音视频技术生态?
- matlab工作节拍优化,装配生产线任务平衡优化遗传算法通用MATLAB源码
- springBoot-03 javaConfig
- 常见职位的英文简称_揭秘 | 90%的留学生会犯的10大英文简历致命错误...
- bits,Bytes,KB,MB,GB和TB之间的换算关系