qq怎么qq登陆需要扫描二维码码登陆

微信网页版登录为什么只能使用扫描二维码?
今天更新了微信4.2,体验了网页版。具体流程是:1、在网页打开,这时网页显示的是一个二维码。2、用手机打开微信,点击右上角的魔法棒,选择扫描二维码,然后把摄像头对准二维码扫描。3、扫描成功后,手机上的微信会询问“确认登录网页版”,在手机上点登录后,网页上的微信会自动登录进去。如上所说,第一次登录微信的网络版时的确感觉很酷,但是步骤也确实有些繁琐,另外我的iPad多次测试都登录不成功,用iPhone就成功了,目前还没搞清楚是什么原因。那么,微信为什么只提供这一种登录网页版的方式呢?我的疑问主要来自以下几点:1、微信本身有帐号,也有密码,而且可以用qq号码、手机号、email、微信号这4种登录,既然在手机应用上登录就使用的是账号密码,为什么网页版不提供账号密码登录呢?2、诚然手机属于私人设备,电脑属于公共设备,但网页版微信的注销机制也很完善了(),而且如qq、msn、facebook、twitter、weibo等都是帐号密码登录,为什么只有微信不支持呢?3、虽然手机属于私人设备,但是手机借出、手机被盗、手机没电等情况都可能出现。用手机扫描二维码不见得比输入帐号密码登录安全。4、扫描二维码的前提是必须保证手机微信可用,如果手机没电、手机丢失等情况出现时,我用网页版微信的需求会很高,但是我已经无法扫描二维码登录了。而手机微信可用时,我用网页微信的需求又会降低,唯一吸引的就是键盘输入快一些而已。另:就具体的网页,这种登陆机制是否有BUG?可否绕过手机扫描这一阶段?
按票数排序
104 个回答
-1.保持微信的移动端优势,防止变成一个桌面终端 ;2.将微信账号的二维码作为用户身份识别的凭证,以后可能为其他网站提供同样的验证服务 ;3.因为 LINE (另一个通讯软件 )就是这么做的 ;4.PC 与 App 数据同步,便于文件、照片在手机与电脑间传输 ;5.一次一密,在保证网页版登录流畅的同时保证安全。-
移动互联网的发展,二维码成为最重要的入口和工具微信要做的是快速完成的二维码普及教育和用户的习惯养成web端的二维码登陆,不在于有多便捷(其实未必方便),不在于将来在web端推登陆标准重点在于,每个用户都学会并习惯于打开微信,点击右上角按钮,选择Scan QR Code(扫描二维码)二维码的应用在线下,微信已经如火如荼展开,比你我想象快很多
用普通二维码扫描软件扫一下微信网页版的二维码会发现类似这样的跳转URL:这是所有安全工程师们的梦想:一次一密,抛弃臭不可闻的单因素认证方式(用户名口令),拒绝脑残的弱口令!试着"逆向"一下微信的登录过程:1、在网页打开,这时网页显示的是一个二维码。如上所述,服务器端生成临时跳转URL:2、用手机打开微信,点击右上角的魔法棒,选择扫描二维码,然后把摄像头对准二维码扫描。客户端提取跳转URL3、扫描成功后,手机上的微信会询问“确认登录网页版”,在手机上点登录后,网页上的微信会自动登录进去。手机上点登录后,客户端GET 临时跳转URL,服务器端验证请求合法性后,push access token给网页上的js(或者网页上的js轮询服务器端:当前session对应的授权临时跳转URL是否已被访问过),网页上js收到access token后开始会话过程以上,实现了客户端session和网页session的同步和绑定。妙!实在是妙!!PS:以上纯属我的个人YY,版权归腾讯所有,阿门。
我是提问者,看了大家的讨论,自己又从更多角度思考了几遍,忽然有了一种猜想:
微信试图成为用户的网络身份证,变革用户登录方式,使二维码成为新的第三方帐号登录入口。目前,很多网站都在使用第三方帐号登录,如微博帐号登录、QQ帐号登录、facebook登录、twitter登录等,但是目前的第三方帐号登录方式都比较繁琐:1、先要选择使用哪个网站的帐号。2、转跳到对应网站的授权登录页面,输入账户名、密码。3、勾选授权内容,并确认授权。微信采用了新的模式,扫描二维码登录,目前在网页版微信应该是一次试水,未来可能会开放API,可以用微信登录其他网站,无需注册,只要扫描即可。而且目前每个微信帐号都有自己独立的二维码,别人只需要扫描你的二维码就能和你加好友。那么微信以后通过API为每一个网站、每一个应用都提供一个二维码登录标识,微信用户只需要扫描就能使用那些第三方服务,也会非常方便。以前是别人扫描你,然后知道你是谁,现在是你扫描别人,服务器找到你扫瞄的人,并告诉对方你是谁。甚至以后可能用微信购物,扫描价签,点击确认购买,售货员的设备就会得到付款成功的消息,东西你就可以拿走了。之前微信就说过要成为平台,通过插件提供第三方服务应该是第一步,通过二维码提供第三方帐号授权可能就是第二步了。以上只是我个人的一些推测,这个问题我邀请了 @张小龙(@allenzhang)回答,目前他还没回应。希望能得到张小龙的证实或辟谣。——————7月27日补充——————最近几天看了很多关于“微信背后的产品观”的信息,又反复思考了多次。今天作出一些补充。@张小龙(@allenzhang)多次强调——趣味性大于功能,用户要的是“爽”。@张小龙 在PPT里说:“营销的目的是让用户觉得‘爽’。口碑传播的基础是‘好玩’。爽是体验,体验比功能更易传播。”也就是说,如果有一个功能,可以用多种方法实现,那么不要把所有实现方法都交给用户,不要让用户选择,不要让用户思考,直接给他最酷的、最炫的、最爽的。比如说网页版的登录,传统登录和二维码登录的目的是相同的,操作时间相差不多,也就是说两种可以同时存在,那么就只给用户一种最酷的,让用户不需要选择,还要大呼好爽。另外,@张小龙 还强调——PC的入口在搜索框,手机上的入口在二维码。这也间接证实了我之前的猜想,微信试图成为入口。而且,微信的野心更大,不仅仅是成为登录的入口,还要成为手机的入口,而一部手机就代表着一个人,微信通过二维码代表这个人来进行各种互动。比如通过二维码关注博客、通过二维码下载应用、通过二维码添加好友、通过二维码购物等等。微信不仅成为了我们的交互手段,微信还会因此得到我们的所有交互行为数据。一亿用户的交互行为数据啊!!如果利用这些数据做深层次的数据挖掘,那是多么大的一笔财富??
今天手机丢了,发现自己没办法登陆微信的时候看到了这个问题。首先,我想说,在我这种情况下这个设置非常傻逼,现在我没有别的智能机可以登陆微信,电脑又登不上去,我工作的伙伴已经习惯了用微信群交流,直到我买新手机之前我都登不上微信,我已经不想说什么了。
这是一个伟大的创新!它把PC和手机的之间谁是主体调换
真心说一句,除了比较酷以外,我觉的对用户的实际好处真的不多,而且也会遇到如提问者所说的一些麻烦。但是这些麻烦毕竟少,用户不会因为这些麻烦而弃用微信,而且也会因为登录方式的酷,让web版更好地吸引眼球(看,人都是感性动物)对产品而言,这种设计坚持了微信的移动性,web版只是一个辅助功能,核心还是在移动端。如果web版支持直接登录,那么微信不知不觉中就会脱离移动性了微信带给我们的启发其实挺多的。微信的某些功能设计其实并不完全是为了用户需求的,而是为了让产品的理念更完整,更丰富。优秀的产品并不是跟随用户的需求,用户需要什么、觉得什么方便就给用户什么,而是引领用户的需求,让用户接受你的理念,iPhone如此,微信也是如此
华而不实的东西!说个自己切身蛋痛的经历, 最近两天,我所用的运营商MTN 不支持微信, (可上网), 突然想起一年前一个朋友说起的网页微信,开电脑查网址,七个了隆叮咚。 准备登录, 偏赶上, 这几天确实有几个重要的事情在微信上。 对啦, 你知道的, 我微信都上不了, 你让我用微信扫描功能去登录网页版。你赢了, 我承认我失误在,我完全退出了微信, 最开始登陆不上去的时侯。 我就问一句, 发明这个的有没有想过, 有可能 客户 是手机登录不了, 比如没电了, 比如黑屏了, 需要网页版本替代一下呢。
请别跟我说什么几亿用户交换数据的大市场, 什么增加客户关联度, 什么人机互换的 听不懂的东西, 我只能说, 恭喜你 你发明了一个 太阳一照就亮的手电筒 Bravo!
今天第一次尝试网页版微信! 直接懵了! 为毛?!我为什么要上网页版的微信?! 还不是因为手机不能上或者不方便上。。。我手机彻底死机不能运行! 而微信里有非常重要的人要联系!! 搞什么2微码?! 这不是脱裤子放屁嘛??!!!!! 2微码现在是流行了! 华丽的! 高大上了!!! 但! 还是实用最重要不是?!!!!!!
刚使用了一下微信4.2,这个设定确实很值得深思这个问题的核心在于:为什么一定要在手机微信运行的同时,才能使用网页版微信。对此网上普遍的解释是为了不洞穿移动特性,一片称道的声音,我以为这是很敷衍的。洞不洞穿移动特性,最终还是要决定于用户价值上的,对于微信这个产品或许还应当考虑一些公司战略层面的问题从目前网页版微信的功能上来看,没有哪个功能是非得需要手机微信运行时才能支持的(传送文件可能需要,但一个非频发功能微信完全可以在要使用的它时候要求用户打开手机微信)。从用户体验上来说,添加一种用户名/密码的登录方式只会优化体验;用户价值上,这个设定也没有看出有什么很值得称道的端倪。所以我猜测有可能有以下几点原因:1,这是微信第一次试水PC端,假如一下子完全脱离手机,会出现什么样的问题都是不可预测的,此种方案比较保险。2,技术方面的问题,微信现在的生态太过复杂,开发周期短,做一套完全脱离手机的PC微信来不及。3,内部竞争,PC端微信突然独立出来,对一些部门的冲击太大。最后声明下,以上分析纯属个人扯淡。
这个微信这个网页登录,借鉴自 Line
很简单的几个原因1、设置密码、记忆密码、修改密码、忘记密码是负担,使用二维码就能摆脱这些复杂的东西,对用户来说,只是偶尔用一下网页微信而已,太繁琐了2、手机不在身边就不能登录,避免信息被泄漏,隐私有保证,你可以随时在任何一台电脑上登录,哪怕是网吧的机器,离开忘记退出?微信上点击退出就可以了,不用担心密码被网页记住了,被人偷看了,很爽!3、产品以移动为核心,这样设计的感觉突出了移动的核心,突出了微信就为移动而生,网页微信不过是设备的接入和延伸,你的心理只需对应你手机上那个APP,所有的数据、验证都在手机APP那里,这种感觉很微妙,会强化微信产品的私人拥有感二维码登录不是什么新东西,也不是微信首创,玩产品的都用过,但是结合微信整体的设计,和网页微信设计,手机上控制登录和退出,这个设计真的很棒,可以看出PM的深厚功力,但是张小龙现在已经成神了,不想多说了。btw:忘记说了,还有一个好处是,很酷,大家都在这里讨论已经证明这点了,多好的传播和装酷的切入点啊
从4.1的朋友圈,到4.2的视频通话和网页微信,注定每一版的更新都是一个新起点。1.扫二维码登陆网页版,“便捷”是尝试过的人一致认同的答案,且紧密结合了微信本身的特色功能。假如是用“账号加密码”形式登陆,那网页版仅是满足“键盘输入”需求,而不是创造“便捷”需求,普通中庸,不如不做。要把“微信是一个生活方式”做透,我认为是要把产品融入生活,用户用app怎样才是最舒适。包括4.2主版面右上角的改动,把二维码提上来,也是基于用户习惯。2.上面@盗盗提到“微信始终是一个基于移动终端的产品,必须通过手机完成登录”我很认同。如果手机没电等用不了手机,那微信自然是用不了的,基于移动互联而生的产品,必须在移动互联中壮大,而不会移根于web。3.除了操作便捷,功能吸引,微信还隐藏了很多使用小秘窍待有心用户发现。试试在群聊时长按某人头像,有新体验哦。
不要分析了,没有其他原因,很简单,因为Line 是这么做的。
这玩意噪点太多,我手机没电了,联系不都微信好友。网上一看,发现网页版的是要手机扫描二维码的,,有病啊,,,这是什么设计啊
网页版这样登录等于鸡肋,只要能用手机的,几乎没人去登录网页版,但手机如果丢了、没电了、或者在不方便使用手机的情况下,用户都会登录网页版,避免错过好友的及时信息,可是这种情况,却登录不了,因为需要拿手机扫描,我要能用手机扫描,我还登录网页版干啥?直接登录手机好了,这样的用户体验,应该不是经验丰富的微信团队欠缺考虑,难道另有隐情?QQ团队不允许他们这个搞?反正这样设计挺让人不解的,直接把用不了手机的人给废了微信
不得不说,微信这招实在太酷了,完美的将这款产品诠释了:“微信,是一款手机通信软件”、“ 微信,不只是一个聊天工具”、“微信,是一种生活态度”的演变历程。同时,再继续下去...可想而知,“微信,是移动社交”!不管如何演变,微信是一个基于移动终端的产品,这个前提必须认同并且坚定不移的贯彻下去,所以,移动的属性必然在微信这款产品中无限的放大..........然后,必须通过手机完成登录,这件事情的意义在于微信手机登陆后,Location的信息、通讯录的信息都会在微信中准确传达,后面可以做的事情更丰富,并且准确的传达了“我们是一个紧扣移动社交的产品”!这样一个概念。为什么我会很兴奋,因为去年我们在做一款移动社交产品,当辛辛苦苦把用户做到十多万的时候,曾经希望把步子迈得再大一点,所以理所当然的希望借助已经有的移动终端的用户转向做Web产品,但是又不想丢掉“我们是一款移动社交产品”的信仰,这样一来,我们区别于传统Web社交产品就会有几个特别重要的移动属性,服务器知道我们的用户在哪里,而不是一台冷冰冰的电脑在哪里。所以,第一个需要解决的问题,便是如何通过手机端实现Web登陆,通过GPS的终端精确获取用户的地理位置,曾经想过无数的解决方案,现在开来都无比的繁琐,微信做到了!所以我很兴奋~另外,在产品形态上,Web微信和WebQQ甚至于PCQQ实际上差别都不是很大,满足用户的需求基本上一致。但是,微信这一招真的打的实在太漂亮了,既创新、又有意义,同时,从名义上讲,微信还不不会跟QQ产生太大的业务冲突,避免腾讯内部的风言风语。
只是为了登录酷么??一个这么成熟的公司,这么成熟的团队做一个功能只是为了酷?1,为什么微信要用网页版叫连接键盘?2,为什么网页版不能脱离手机而单独存在?因为微信是腾讯占领移动客户端的一步重要的大旗!如果pc可以脱离手机而单独使用微信对腾讯有什么作用呢?在pc上腾讯有qq,就算微信pc脱离版帮助腾讯争取到了用户但是这些用户不说100%还挂着qq也有90%,这些已有用户对腾讯毫无用处,而且有可能慢慢分流手机端用户变成很多人挂着pc微信,手机里却没有了微信
1、张小龙原来想做的只是“连接键盘”,因为手机输入设备不理想,所以“使用更快捷更方便的输入方式”成为一种需求,当你坐在电脑前,手机也放旁边的时候,键盘自然是更好地输入源(同时也不用分心操作两种设备)。面对很多人都有这种需求的时候,张小龙就做了这个“连接键盘”的功能,又因为“白”的用户太多,“连接键盘”?什么?怎么连?所以干脆叫“网页版”了,反正做这个功能就是为了大家用得方便嘛~(我猜完美主义文艺青年张先生心里肯定不太情愿这么做,但没办法,一切为了普罗大众)2、“PC始终只是一个外设,但手机却是身体的延伸,是身体的一部分”(张说的,我还没用手机用到这境界),而这个延伸又需要一个好的入口,“图形”是个好东西,也就是现在微信大力推广的二维码,扫描一下就能得到你想要的一切,简单,而且很酷,当你习惯了它之后,很多我们原有的生活习惯就会被改变,输入用户名和密码的登录方式只不过是其中的零心一点而已。也看到上面有同学分析“一次一密”等安全性问题,但我觉得,比起理性的技术,“很酷的入口”、习惯的养成和生活方式的改变才是真正的目的。3、正因为张小龙相信自己的预见,也有这样的平台和能力,所以才大力推动二维码的发展,君不见,现在一线城市的很多角落都有“请用微信扫描二维码”的身影么,好奇是人类的天性,我们都迫不及待地想尝试新鲜事物,所以利用现实实体,一来推广了微信,二来推广了二维码,两全其美。张大神的“野心”很大,如果一切顺利的话,微信用不了多久就会成为我们生活必不可少的一样东西,手机也将真正成为我们身体的一部分,因为微信不光是一切的入口,还是一切的源头和容器,它是一个广袤的平台和信息生态链,里面会生存着无数的生产者和消费者,我们可以很方便的查询和获取想要的信息,也可以很方便的创造和传播属于自己的内容。其中不光能造福大众,使我们生活得更好,还蕴含着巨大的商业价值。4、虽然很多道路还在开拓之中,但微信已经显露出了成为这样一个改变世界和人类生活方式的庞然大物的可能性,一切都在悄无声息地酝酿之中,我等凡人就静候这一天的来临吧 : )
因为微信本身就是个不合理的东西。SNS是网络时代的一个巨大负面作用。二维码是给机器用来识别用的,人可以轻松的阅读被扭曲污染的文字,根本不用验证码。那些完全可以在广告中给出网址文字却只留下个二维码的广告都是脑残广告公司。手机取代电脑只不过是iPhone过火的一个假象而已,没有键盘鼠标这种准确高效的输入设备的弱智触摸屏摄像头移动终端根本就不是给真正工业化信息化的人类用的。当然,我们也可以祈祷,如果TM这种弱智电子产品真的统治了人类,那么人类也不可能有战争了。
当时对这一功能的分析在这里: 至于为什么会有扫描二维码登录这一功能,是借鉴Line的,上面提到的这篇文章里也有介绍。QQ怎么使用二维码登录 如何扫描二维码登录QQ_百度知道
QQ怎么使用二维码登录 如何扫描二维码登录QQ
提问者采纳
联系人–添加–扫一扫
其他类似问题
登录qq的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁微信扫描二维码登录网页是什么原理,前后两个事件是如何联系的?
按票数排序
的答案,从回答可以看得出来他对技术细节并不了解。对前端开发有了解的同学随便开个 Firebug 看看登录过程的 Net 视图基本就能大概看清楚这个过程。我个人开发过程一般是和产品说,『你们提业务要求、交互方式、性能要求等就好,技术方案我们会综合开发时间、系统架构等因素考虑』。恰好我之前也花过几个小时做过类似的验证登录过程,这里作为探讨,把产品同学的回答做个引用,解释一下其中『不技术』的地方。1. 每打开一次页面的时候会随机生成一个含有唯一uid的二维码,每次刷新页面都会不一样(这个可以保证一个uid只可以绑定一个账号和密码,如果一个uid可以绑定多个账号和密码,那么很可能你的电脑会登陆别人的微信哦);确实返回了唯一 id,但目的是为了识别用户身份,而且实际上打开这个页面的时候浏览器已经和 Server 创建了一个长连接等待确认信息。查看
的源码可以看到,这个页面在加载完毕时,也已经把很多登录后才需要的相关资源都预先加载进来了,所以长连接等待登录用户得到确认后展示用户信息的速度很快,因为无需刷页面和加载头像外的其他资源。2. 当用户使用登陆后的微信扫描该二维码的时候,会将这个id和手机上的微信账号及密码绑定,并上传到服务器;先上个图:二维码样例:
,利用我查查之类的二维码应用可以得到类似这样的地址,但并不会自动打开该地址,微信客户端针对
开头的地址做了特殊处理,会自动获取相关信息并提示确认。 在手机版微信访问这个页面进行确认时,Server已经同时获得了客户端信息,并通过之前保持的长连接告知浏览器。3. 页面每隔1秒或2秒会get请求该id对应的微信账号及密码,如果id绑定上了微信账号和密码,那么就可以请求到账号和密码,就可以自动登陆了。浏览器展示完长连接里包含的用户信息(头像等)后,会新开一个长连接等待客户端的确认操作,其 URL 类似
。从安全的角度来说,无论如何都不会让客户端获得微信帐号和密码的。要知道,密码这玩意腾讯自己都不敢保存(有兴趣的同学可以自行了解下 CSDN 明文密码泄露事件),肯定是不可能返回给浏览器的。而且从体感来看,怎么着都不可能是页面1-2秒轮询发起GET请求的,实际是通过堵塞等待的长连接,近乎实时的获得信息。 对于验证过程,Open API 一般是通过授权令牌(Token)来解决的,原理是当用户通过授权后,分配一个限定条件下的令牌(如限制本机访问、限制授权有效时间、限制同时登录设备数等),使获得授权的用户仅在有限的前提下能访问相关服务。 像计算机休眠后曾做的授权就自动收回了,这样就有效的避免了在别人电脑上(尤其是网吧)打开,但忘记关闭或退出这类安全问题了。同时,整个授权过程的验证部分在手机端进行,有效杜绝了 PC 上泛滥的各类木马、『安全工具』的监听,大大降低了帐号被盗的风险。所以说,核心过程应该是:浏览器获得一个临时 id,通过长连接等待客户端扫描带有此 id 的二维码后,从长连接中获得客户端上报给 server 的帐号信息进行展示。 并在客户端点击确认后,获得服务器授信的令牌,进行随后的信息交互过程。 在超时、网络断开、其他设备上登录后,此前获得的令牌或丢失、或失效,对授权过程形成有效的安全防护。
有人对这个存在疑问是因为,扫码登陆有那么一点点违背直觉。违背直觉的地方在于,电脑端是如何知道是哪个微信账号扫的它?传统的登陆方法都是我告诉(输入)登陆设备我的账号密码等信息,然后就登陆了。而这个是反过来的,微信扫码,信息(二维码)是从被登陆设备(电脑)往手机(微信)传的,违背直觉的地方就在这里。信息传递的方向是反的。然而多想一步就会明白,不管是手机还是网页端,都是和微信的服务器连接的。微信在扫到码后告诉微信的服务器它扫到的是哪一个码。服务器知道当前这个码是在哪一个网页上显示的,于是这两者就联系起来了。举个例子,比如你在街上看到一个美女,你不知道她的名字等联系方式,但你牢牢的记住了她的长像。然后你跑到公安局里去通过她的长相查到了她本人,公安局联系她本人说有个人要找她,最终你们取得了联系。这里公安局就是微信的服务器,你就是微信,她就是网页端。比喻不太恰当,凑合一下吧~值得注意的是这个过程中没有用户名密码等的验证。因为这是基于一个信任来登陆的:即服务器相信能用微信扫码的话,扫码人就拥有这个微信账号的所有权。微信在首屏也提供了从手机上退出网页登陆的功能,这样即使是别人拿着你的手机扫了码在他的电脑上登陆你的微信,你也可以发现。整个过程是没有逻辑漏洞的。
使用Fiddler抓包就可以看到了啊。Web页面保持长连接,微信点击登录后POST数据,Web页面捕获到进行加载用户列表等功能。就这么个流程啊。
诸多先贤告诉我们,不要挑起事端。诸多先贤还告诉我们,要说人话。签名表明了我的态度,那我就简单说几句,喂,就几句,不要抢我的稿子!1、你用浏览器打开的时候,微信给你随机分配了一个链接,【相当于给你开了间房,房号1024,注意,只给你房号,没给你钥匙】,用二维码包装着,并且设置了有效时间【10分钟你不进房间,就给你取消】。这里面没有用户什么事情,所以不存在UID(user ID),只是一个随机的字母和数字组合。2、二维码的转码规则是统一的,所以意味着,只要是个二维码扫描软件,谁都能拿到这个链接,微信可以扫出来,我查查也可以扫出来。3、所以拿到链接没有用,重要的是谁拿到链接,微信拿到了,就可以从微信客户端发一条信息给服务器,告诉服务器,现在是谁使用了某个链接,其他二维码扫描软件,不能和微信服务器通话,所以毫无价值。【你拿到了房号,就给酒店老板打个电话,说是我,老板就知道张三又来开房了,其他人没有老板电话,知道房号也没用】4、这时候,在你刚打开的浏览器窗口里面,就知道并显示了你的信息,理论上可以直接打开聊天窗口,但是为了不突兀不尴尬,微信选择再让你在手机上做一个确认操作。【你站到你的房间门口了,老板也知道你是张三了,并且把你的那个好基友也放到了你房间里,但是谁知道你基友会在房间里干点啥?如果他正好弯腰在捡肥皂,这时候恰好你后面有人经过,房门大开大家尴尬不尴尬?所以还是老板考虑周到,他要你在电话里确认一下才给你开门,你大可以等后面没人了再开门进去】5、好了,现在你可以进去好好享用你的基友了。
微信和airdroid都有扫描二维码登录的功能,实现略有差别。如果你用普通的二维码扫描工具扫描它们的二维码,微信得到一个网址,airdroid得到一个字符串,但是里面都会有一个唯一的ID,这一点是共同的。微信的方案是:在网页生成这个二维码的时候,网页就开始用ajax长轮询,对服务器请求这个UID的扫描记录,如果没有,在特定时长后(目前是27秒左右)会接到状态码408,表示应该继续下一次请求,如果接到201,那么就进入第3步什么时候有201呢,微信客户端一旦扫描了这个二维码,就会向解出来的网址发起请求,通知扫描成功(当然这个网址做了来源验证)。服务器一接收到这个请求,就从当前的查询长连接里面立即把201返回过去(如果一直没有请求,那么会在30秒内把408返回去,这就是1里面提到的两个状态码的由来)得到状态码201后,通知服务器,客户端由此也进入一个新的页面(就是那个要你点确认的按钮),原理跟上一步相同(长轮询)。这个时候你只要点击确认,服务器就开始给该客户端的用户进行自动登录,并把用户信息在这一步通过当前的某个上行的长轮询给返回出去。当然返回的方式不再是什么状态码了,而是header里面的Set-Cookie,咋就内容其实也相当于状态码:&error&&ret&0&/ret&&message&OK&/message&&skey&xxxx&/skey&&/error&这个时候浏览器就可以成功地用微信认可的任何一种认证方式(通过返回的skey和cookie里面的信息)来请求用户数据了。之所以要提一下airdroid,是因为它在有些地方是不同的,所以,扫描二维码登录这回事,在保证安全的情况下,实现方式是看你的想象力了。首先,扫描二维码只得到字符串而不是网址,避免了鉴权网址外泄其次,浏览器是能用web socket来和服务器进行通讯的,避免了长轮询(微信是考虑到中国用户的浏览器不支持ws的居多吧。这里可以顺便介绍一下微软的signalR方案,它可以根据客户端浏览器的支持情况进行自动从ws降到long pool,微信团信应该是看到这个需求没多大的意义,干脆直接用最原始的实现吧,毕竟不是做一个库)更多细节我就懒得跟踪了,哪天自己也有同样的需求再研究吧
排名第一的我觉得不对,二维码里面是不会包含uid的,只是一个随机不重复的数。微信扫描之后会把这个数跟服务器进行比对,肯定只有一个唯一的页面是相对应的,那么PC端就会有提示。这个当然是非常安全的,因为登陆验证是个闭环,是在微信跟服务器之间进行的,外界是无法知道真正的算法的。
这是“冲击-响应”式的验证机制腾讯现在网页上扔出一个随机数A客户端把这个随机数A和客户端自己的Auth Key一同返回腾讯利用A和Auth Key建立一个唯一的Session ID 按照 的说法,A直接承担了Session ID的职能,我想这是因为HTTPS保证了A不会让第三方看到,因此A是一个Secret然后网页版的微信走的是可靠的HTTPS附加说一个,腾讯很好,让采用了TLS1.2,TLS1.2可以抵御BEAST等早先TLS版本中出现的弱点如此就能确保正确的用户安全地使用了网页版微信
打开微信网页版,在浏览器生成二维码,二维码中包含登录信息和服务端给它生成了一个唯一标识码UUID,同时服务端监听服务端登录请求;html:&img id="loginQrCode" src=""&jslogin.js:window.QRLogin.code = 200; window.QRLogin.uuid = "3aea191f78ec42";在客户端使用扫一扫登录网页版时,此时uid已经登录且有访问授权码access_token信息扫描网页的二维码,获取到服务器生成的UUID,然后将access_token及UUID发送给服务端服务端验证通过后,生成登录授权码并且通知网页端网页端获得授权码后即可向服务器申请用户登录信息,完成登录原文地址:
这个我暂时没发现有人答对的,其实原理很简单:1. 每打开一次页面的时候会随机生成一个含有唯一uid的二维码,每次刷新页面都会不一样(这个可以保证一个uid只可以绑定一个账号和密码,如果一个uid可以绑定多个账号和密码,那么很可能你的电脑会登陆别人的微信哦);2. 当用户使用登陆后的微信扫描该二维码的时候,会将这个id和手机上的微信账号及密码绑定,并上传到服务器;3. 页面每隔1秒或2秒会get请求该id对应的微信账号及密码,如果id绑定上了微信账号和密码,那么就可以请求到账号和密码,就可以自动登陆了。如果大家感兴趣的话,可以继续往下看,我再补充两点:1. 其实扫描二维码登陆只是在一端未登录的情境下使用会非常方便,同时安全性非常高,因为账号和密码不会暴露给黑客,几乎不存在盗号的可能性,所以我们看到扫描二维码登陆已经使用到了腾讯qqPC客户端最新版本中。2. 手机扫描二维码登陆还解决了PC和电视端登陆输入麻烦的问题,尤其是电视端的账号和密码通常是要靠遥控器一个一个按出来,所以,扫描二维码登陆在电视端的登陆上也有了比较好的体现,乐视超级电视应该是首次实现这一功能。3. 如果PC端(或电视端,主要指乐视超级电视最新的系统中也加入了扫描二维码登陆功能)和手机客户端都同时保持登陆的情境下,并且都通过唯一id绑定,那么其中一端可直接远程控制另一端,未来在这一领域的产品想象空间非常大,例如,乐视播放页的1080P速递下载,以及腾讯手机管家的遥控PC离线的功能。
我猜是给每个人的二维码都包含unique的id,这样扫了二维码之后,连带账户信息一起发到服务器端,服务器拿到消息之后就能更新网页端了。我拿自己的快拍二维码扫了一下,发现是一个 这样的链接...每次登录的xxxxxxxx应该都不一样吧大概是这么一回事吧。
抓个包什么都搞得清,没事看看我大中通用户中心,快速登录里照样支持微信扫码登录!
其实很简单,二维码内容就是一串识别字符串,存在数据库里,照了之后发给微信服务器核对,识别身份,登录页面采用 AJAX 监听,身份识别完成给浏览器发送登录 Cookie。WeCenter 程序自己也实现了一套方法,有兴趣的可以下载源码看看: 登录页面按微信图标就是扫码登录
在电脑上使用时,你可能已经发现微信不提供传统的账号密码登陆,取而代之的是通过扫描二维码进行登陆。今天就要研究下次登陆方式微信时如何实现的?
1、每次用户打开PC端登陆请求,系统返回一个唯一的uid,并将uid的信息绘制成二维码返回给用户。这里的uid一定是唯一的,否则就会造成你登陆了其他用户的账号或者其他用户登陆你的账号。
2、当用户使用登陆后的微信扫描该二维码的时候,会将这个uid和手机上的微信账号及密码产生的token进行绑定,并上传到。
3、WEB通过JS不断的向后端发起请求,查询有没有关于uid的登陆记录(uid和token是否存在于服务器上)。实现代码可以从微信页面获取:
function _poll(_asUUID) {
var _self = arguments.callee,
_nTime = 0;
_sCurUUId = _asUUID;
_logInPage("_poll Request Start, time: " + new Date().getTime());
_nTime = new Date().getTime();
type: "GET",
url: "https://login." + _sBaseHost + "/cgi-bin/mmwebwx-bin/login?uuid=" + _asUUID + "&tip=" + show_tip,
dataType: "script",
cache: false,
timeout: _nAjaxTimeout,
success: function(data, textStatus, jqXHR) {
_logInPage("_poll Request Success, code: " + window.code + ", time: " + (new Date().getTime() - _nTime) + "ms");
switch (_aoWin.code) {
_sSecondRequestTime = new Date().getTime() - _sSecondRequestT
_logInPage("Second Request Success, time: " + _sSecondRequestTime + "ms");
clearTimeout(_oResetTimeout);
$.get(_aoWin.redirect_uri + "&fun=new", function(msg) {
_logInPage("new func reponse, reponseMsg: " + msg);
_reportNow("new func reponse, reponseMsg: " + msg);
var code = msg.match(/&script&(.*)&\/script&/);
eval(code[1]);
$("#container").show();
$("#login_container").hide();
_reportNow("/cgi-bin/mmwebwx-bin/login, Second Request Success, uuid: " + _asUUID + ", time: " + _sSecondRequestTime + "ms");
clearTimeout(_oResetTimeout);
show_tip = 0;
$('.errorMsg').hide();
$('.normlDesc').hide();
$('.successMsg').show();
_logInPage("First Request Success");
_reportNow("/cgi-bin/mmwebwx-bin/login, First Request Success, uuid: " + _asUUID);
setTimeout(function(){
_logInPage("Second Request Start");
_reportNow("/cgi-bin/mmwebwx-bin/login, Second Request Start, uuid: " + _asUUID);
_sSecondRequestTime = new Date().getTime();
_nAjaxTimeout = 5 * 1000;
_self(_asUUID);
setTimeout(function(){
_self(_asUUID);
_afterLoadWebMMDo(function(){
_aoWin.Log.d("500, Login Poll Svr Exception");
error: function(jqXHR, textStatus, errorThrown) {
if (textStatus == 'timeout') {
setTimeout(function(){
_self(_asUUID);
setTimeout(function(){
_self(_asUUID);
_logInPage("_poll Request Error:" + textStatus);
_afterLoadWebMMDo(function(){
_aoWin.Log.e("Login Poll Error:" + textStatus);
网页客户端每500毫秒就向服务器发起ssl请求,请求当前二维码的登陆信息,如果返回结果201,则说明已经获取扫描二维码终端相同的账号登陆授权,当返回其他结果时,将在500毫秒之后重新发起请求。
类似微信登陆场景应用场景还是很多,比如通过二维码进行设备间的授权。比如使用手机遥控 装有android系统的电视盒等。
简单的说,原理就是将同一账号在 手机APP(微信)中 的登陆状态 共享 给 网页 使用。二维码中只包含需要的共享帐号信息(不含密码);手机拍摄二维码后将手机中的帐号、登录态提交到服务器;服务器校验后存储在统一的登陆态SESSION节点中;网页通过在SESSION读取相应的需要登录的帐号信息。具体的技术流程是基于Kerberos协议,通过二维码传递手机端的登录Ticket给网页:1.根据时间戳、路由和SALT指等参数生成一个随机的唯一uid,到服务器请求生成二维码图片,这个uid是登录流程的唯一标识,不可伪造,串联整个登录流程,另外,二维码的生成和访问都是通过SSL安全通道完成的;2.网页获取到二维码,用这个唯一的uid和server建立长连接;3.手机照一下也就是App扫描二维码时,手机绑定用户的uin和从二维码中获取到的uid;4.手机也就是App中点击确认,根据手机的登录态生成Ticket,和uin、uid等参数传递给登录服务器;5.登录服务器校验登陆态无误后,更新到通过uid指定的session节点,将结果通过长连接传递给网页,或者由网页定时查询session的指定位置获取是否登录;6.网页校验ticket确认登录;
每隔一段时间进行请求服务器,返回201 表示成功 408失败这是我观察的包前3个都是我等待状态,最后一个我扫了,返回了201。服务端唯一标识验证不解释。
请参考我在CSDN回答的答案, 以及我的具体实现 www(dot)88jimo(dot)com楼上说随机数的显然是错误的, 随机数有碰撞的可能, uuid 或者 某个全局自增量 还差不多.扫码登陆是一个小概率事件. 不论long pull还是轮询还是web socket也好, 不是这个方案的key point, 只不过long pull 和web socket是更优化的一个选择而已.微信在上个礼拜正式公开 登陆API 内测, 可以参考以下页面:
看着答案最后就变成讨论到底是长连接还是轮询的问题,然后就偏了,其实具体用什么技术在这里不是特别重要(长连接也好、Server-Sent Event也好、WebSocket也好、轮询也好,这些都只是途径),提主想知道的是这两个事件是怎么联系的。表面上的步骤如下:[电脑] 打开,得到二维码[手机] 点开扫一扫,扫描PC端二维码,并且扫描成功[电脑] 提示扫描成功,[手机] 询问是否确认登陆[手机] 确认登陆(如果不确认登陆么,[电脑]就还是那样)[电脑] 跳转其实对应的内部机制差不多是这样的:电脑请求网页后,微信服务器生成一个唯一的ID(这里是UUID)给客户端网页,客户端定时发起向微信服务器的连接(这里类似于轮询),微信服务器保持这个连接(这里类似于长连接),保持一段时间(大概27秒)返回一个“还没人扫码”的标识,于是客户端再开连接手机微信扫码并解码,解码出来是一个URL也好,是一段文本也好,总之这段东西匹配了手机微信登陆网页版的要求,于是手机微信带着解码出来的信息去请求微信服务器。这里就已经达到了特定微信账号和某个特定网页相关联的目的电脑这里微信服务器马上在长连接中返回“有人扫码了”的表示并结束连接,网页提示扫描成功,然后打开长连接等待确认登陆的标识;手机这里么则根据二维码的信息打开对应网页确认登陆后面其实和前面一样了,手机微信确认登陆的其实就是请求服务器说这个可以登录了,然后服务器给网页的长连接中返回可以登录的标识并结束长连接,然后跳转到消息网页就算是单一的长连接也是可以的,流程差不多;就算是轮询又怎么样呢(当然服务器开销会大总所周知),大不了就是等到某一条请求下来发现是“有人扫码”然后接下去某一个请求下来是”确认登陆“而已。这个流程其实是主要的,至于用什么技术是次要的,用什么技术只是手段而已,假设微信这个网页登陆是出现在5年后,那微信肯定会去用标准化的WebSocket。真要讨论的话,微信最后那个还可以不跳转,做成单网页的,这就没有什么讨论的意义了。
学习了 第一看见是 淘宝支付 时候,出现手机支付 扫下手机支付开始了,当时懵了,现在才明白
虽然说不清楚具体的原理,但我可以肯定这里面没有什么高深的技术,因为我所带领的开发团队前段时间模仿过这个功能,已经用在了公司业务系统的登录上,安卓版和iOS版都做出来了,也没用多长时间。具体的技术细节我没有关注,但是我们是一个小公司的小团队,水平也一般,没觉得这个有难度,对大公司来说应该都不算个事。

我要回帖

更多关于 qq怎么扫描二维码登录 的文章

 

随机推荐