代码

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微信登录接口的研究相关推荐

  1. 2022全新适配微信登录接口 wordpress博客系统资讯资源变现下载小程序源码

    介绍: 2022全新适配微信登录接口 Wordpress博客系统资讯资源变现下载小程序源码 因为由于微信的新规从11月9号后新上线的小程序将不能获取用户头像和名字了 所以微信放需要适配全新的,支持让用 ...

  2. 人人商城v3.28.41修复11月8日微信登录接口,公众号和小程序同步修复

    人人商城v3.28.41修复11月8日微信登录接口,公众号和小程序同步修复 独家修复,可二开.可封装原生APP

  3. Android应用调用微信登录接口

    很多App都是需要用户登录的,例如电商类的APP,用户登录后可以查看自己的购物订单,浏览痕迹等,登陆的话又可以分为多种登录,例如QQ,微信,微博,支付宝等,那么接下来这篇文章讲诉的是应用如何调用微信的 ...

  4. 第三方应用微信登录接口

    重点内容 https://www.cnblogs.com/benwu/articles/5705604.html 微信登录接入 微信登录遵循协议Aouth2.0中的授权码模式 Aouth2.0授权码模 ...

  5. 网站使用微信登录接口,所踩的坑...

    一.如何开通微信公众号.微信开发平台.授权认证.接口权限申请等等,这些不在本文描述,请参考官方资料. 二.假设已顺利完成第一步的工作,现在需要在自己开发的网站(PC端.移动端,注意两者略有不同,下文有 ...

  6. 第三方(APP或网页)调用微信登录接口,做微信登录

    微信接口调用,真的是难者不会,会者不难只要做过一遍之后以后再做就很简单了,当初我一个人因为么有人请教,在这一块耽误了好几天的时间,网上的教程也都搜过,可能因为没接触过吧,看的也不是很明白,今天来做一个 ...

  7. 网站使用微信登录接口

  8. 企业微信小程序_授权登录接口获取用户userid

    文章目录 一.前置知识 1. 阅读 企业微信小程序开发文档 2. 企业微信小程序登录流程 3. 微信小程序区别 二.前端部分 2.1. 调用登录接口 2.2. 请求后端接口 2.3. 项目源码 三.后 ...

  9. 微信第三方登录接口开发

    微信登录接口开发须知 APP登录接口 PC网站登录接口 微信移动网页登录接口(又称微信公众号授权登录) 移动端非微信自带浏览不支持微信登录 微信移动网页登录接口(又称微信公众号授权登录) 先要与开放平 ...

最新文章

  1. springboot 优雅停机_Spring Boot 2.3 新特性优雅停机详解
  2. tomcat 和 jdk 版本 对应关系
  3. jquery实现点击浏览器后退,上一页面自动刷新
  4. java logging 格式化_Spring源码使用java.util.logging打印日志
  5. C# Zip解压缩,规避 [content_types].xml 文件
  6. Unix系统使用的地址索引结构有什么特点?
  7. html中鼠标移走的伪元素,a标签的伪元素的应用——link,hover,visited,active
  8. 华硕飞行堡垒atk驱动在哪_11月8日华硕再撒大额福利 满减优惠价机不可失_第1页...
  9. PS视频降噪去噪点插件;DeNoise英文可选 支持CS6- cc2019
  10. 一些有意思的函数(连载中)
  11. BS模型和CS模型的介绍和区别
  12. python/sympy求解矩阵方程
  13. G 蛋白偶联受体与小分子化合物的相互作用
  14. Valens HDBaseT VCN2K HDMI 1.4接收/发送
  15. 一起开心2020蓝桥寒假训练(二)7-6 彩虹瓶 (25分)用到栈,队列
  16. java源代码转jar包
  17. matlab单相桥式全控整流电路仿真
  18. mysql中用来取余数的函数是_MySQL函数 练习题
  19. ots在线考计算机的word,OTS在线考试系统.doc
  20. Sublimit Text 3 快捷键

热门文章

  1. java程序员的相亲指南,你确定不看看吗?
  2. Linux 查看并杀掉tomcat进程
  3. PHP实现抓取HTTPS内容
  4. 最新q绑在线查询源码,低配版社工库恶搞版,纯html源码可直接使用
  5. java直板手机_新一代街机之选!诺基亚S40金属直板6300评测
  6. “小程序+直播”怎样搅动音视频技术生态?
  7. matlab工作节拍优化,装配生产线任务平衡优化遗传算法通用MATLAB源码
  8. springBoot-03 javaConfig
  9. 常见职位的英文简称_揭秘 | 90%的留学生会犯的10大英文简历致命错误...
  10. bits,Bytes,KB,MB,GB和TB之间的换算关系