微信第三方扫码登录抓包小记

微信第三方扫码登录流程抓包,主要了解扫码登录机制。还有一个原因,看到知乎上这个问题下某些作者的瞎编乱造和吹水。。哈哈

主要有2个角色,PC端浏览器(下面简称PC端),手机端微信APP(下面简称微信), 浏览器端的抓取使用 Chrome的开发者工具,手机端的抓取使用 Charles (mac上的一款抓包工具),下面是一次交互中的抓包记录,顺序进行。

PC端 点击osc上的微信登录按钮

https://open.weixin.qq.com/connect/qrconnect?appid=wx00dc77dadaf54f3b&redirect_uri=http%3A%2F%2Fwww.oschina.net%2Faction%2Fopenid%2Fafter_bind_wechat%3Fgoto%3D&response_type=code&scope=snsapi_login&state=yq56fZZhqBrIDIKAxN0Q

有几个参数 appid, redirect_uri, response_type,scope,state

PC端 显示二维码,下面是二维码的图片获取地址

https://open.weixin.qq.com/connect/qrcode/0318gIJLqTcqXhO8

PC端 开始轮训服务端,等待成功消息。微信等待结果并没有使用 websocket, 而是每秒轮训,注意 uuid 和二维码url中的参数

https://long.open.weixin.qq.com/connect/l/qrconnect?uuid=0318gIJLqTcqXhO8&_=1494921848308

微信端 使用扫一扫按钮扫码二维码(微信主要有2个步骤,扫码,点击确认登录), 和服务端的交互。 返回的是微信上的确认页面的html

https://open.weixin.qq.com/connect/confirm?uuid= 0318gIJLqTcqXhO8&key=f8d22b116d47b51e62b7220d6cab7cb5b2eefb9d7b58bace8ede258ab6dd23df49db3d66985ce58ab4e80b644fdd43c77d5ef887e9b38ea01430f6f833c65a58bf740dba719a0ba8e4eb36dc5141e480&uin=MjQzNzEzNzk2MA%3D%3D&lang=zh_CN&pass_ticket=v1xnAuk0fQLjHQj78uwv8QrEOoYZXvXadRYxz31%2BIkP%2F7IXEKuRE%2BLGIzuu5kwWH

PC端: 当微信端扫码上二维码,但是没有确认时候, PC端的轮训连接有所变化

https://long.open.weixin.qq.com/connect/l/qrconnect?uuid=0318gIJLqTcqXhO8&last=404&_=1494921848309

微信端:点击确认时候链接, POST请求,返回的也是html

https://open.weixin.qq.com/connect/confirm_reply

pass_ticket=v1xnAuk0fQLjHQj78uwv8QrEOoYZXvXadRYxz31%2BIkP%2F7IXEKuRE%2BLGIzuu5kwWH&key=f8d22b116d47b51e62b7220d6cab7cb5b2eefb9d7b58bace8ede258ab6dd23df49db3d66985ce58ab4e80b644fdd43c77d5ef887e9b38ea01430f6f833c65a58bf740dba719a0ba8e4eb36dc5141e480&uin=MjQzNzEzNzk2MA%3D%3D&uuid=0318gIJLqTcqXhO8&snsapi_login=on&allow=allow

PC端 回调osc的链接

http://www.oschina.net/action/openid/after_bind_wechat?goto=&code=061iqm0J0D3WSj2oIr0J0kz00J0iqm0w&state=yq56fZZhqBrIDIKAxN0Q

主要的参数还是 uuid,微信客户端在已经登录的情况下获取到uuid,然后告诉服务端这个用户已经登录了,服务端就可以把uuid和当前用户绑定起来,给pc端通知这个用户已经登录了。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值