Android面试题-微信扫码登录内部实现原理
来源:互联网 发布:二端电阻网络的无源性 编辑:程序博客网 时间:2024/05/24 07:35
本文配套视频
- 配套视频
源码分析相关面试题
- Volley源码分析
- 注解框架实现原理
- okhttp3.0源码分析
与XMPP相关面试题
- 与XMPP相关试题一
- 与XMPP相关试题二
与性能优化相关面试题
- 与性能优化相关面试题一
- 与性能优化相关面试题二
- 与性能优化相关面试题三
- 与性能优化相关面试题四
- 与性能优化相关面试题五
- 与性能优化相关面试题六
- 与IPC机制相关面试题
与登录相关面试题
- oauth认证协议原理
- token产生的意义
- 微信扫一扫实现原理
与开发相关面试题
- 迭代开发的时候如何向前兼容新旧接口
- 手把手教你如何解决as jar包冲突
- context的原理分析
与人事相关面试题
- 人事面试宝典
26微信扫码登录内部实现原理?
打开网页版微信,可以看到如下的页面:
如果你用我查查、支付宝、新浪微博等软件扫码二维码,你会发现此二维码解析出来是如下的网址:
https://login.weixin.qq.com/l/obsbQ-Dzag==
接下来详细介绍一下扫码登录具体的每个步骤:
① :用户 A 访问微信网页版,微信服务器为这个会话生成一个全局唯一的 UUID二维码,上面的 URL 中 obsbQ-Dzag== 就是这个 UUID,且每次刷新后都会改变。这样可以保证一个UUID只可以绑定一个账号和密码,确定登录用户的唯一性。我刷新三次,扫描结果如下,其中最后面那串数字就是UUID:此时系统并不知道访问者是谁。
② :除了返回唯一的uid,实际上打开这个页面的时候,浏览器跟服务器还创建了一个长连接,请求uid的扫描记录。如果没有,在特定时长后会接到状态码408(请求超时),表示应该继续下一次请求;如果接到状态码201(服务器创建新资源成功),表示客户端扫描了该二维码。
请求超时:返回408
扫码成功:返回201
③:手机上的微信是登录状态,用户点击确认登录后,手机上的微信客户端将微信账号和这个扫描得到的 ID 一起提交到服务器
④ :服务器将这个 ID 和用户 A 的微信号绑定在一起,并通知网页版微信,这个 ID 对应的微信号为用户 A,网页版微信加载用户 A 的微信信息,至此,扫码登录全部流程完成
总的来说,微信扫码登录核心过程应该是这样的:浏览器获得一个唯一的、临时的UUID,通过长连接等待客户端扫描带有此UUID的二维码后,从长连接中获得客户端上报给服务器的帐号信息进行展示。并在客户端点击确认后,获得服务器授信的令牌,进行随后的信息交互过程。 在超时、网络断开、其他设备上登录后,此前获得的令牌或丢失、或失效,对授权过程形成有效的安全防护,类似的应用还有扫码支付、扫码加公众号等功能.
- 欢迎关注微信公众号,长期推荐技术文章和技术视频
- Android面试题-微信扫码登录内部实现原理
- Android面试题-微信扫码登录内部实现原理
- 微信扫码登录内部实现原理
- iOS 面试题(5.):weak 的内部实现原理
- Android面试题-注解框架实现原理
- Android面试题----Android系统显示原理
- 浅谈session实现原理(阿里面试题)
- 面试题:阐述Handler的实现原理
- 面试题 HashMap 数据结构 实现原理
- Android面试题-oauth认证协议原理
- Android面试题-Context原理分析
- ucenter整合同步登录的内部实现原理
- ucenter 整合同步登录的内部实现原理
- 【面试题】登录
- SSH原理面试题
- HashMap原理、面试题
- 微信扫码登录网页实现原理
- 微信扫码登录网页实现原理
- seafile windows 安装nginx
- 代码修改系统时间--1.系统命令设置 2.系统API直接设定毫秒值
- pl/sql试用期到期无法使用解决方法
- TensorFlow与OpenCV,读取图片,进行简单操作并显示
- 块存储、文件存储、对象存储这三者的本质差别
- Android面试题-微信扫码登录内部实现原理
- 好架构是进化来的,不是设计来的(58架构演进)
- linux基本命令(压缩)
- SQLiite基础语法示例及说明
- LINK : fatal error LNK1104: cannot open file "nafxcwd.lib"
- spring cloud之简单介绍
- vuethink 添加菜单
- 如何在git导出分支之间差异文件的压缩包,类似svn的导出变化文件功能
- 如何登录管理员帐户任何Windows PC上的图像教程