我是靠谱客的博主 开心楼房,最近开发中收集的这篇文章主要介绍android 仿qq单点登录,QQ 的快速登录原理(BS、CS 混合的单点登录),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

如果我们在本机电脑上启动了 QQ,再使用浏览器访问 QQ 邮箱登录页,这个页面会提示我们已经登录了的 QQ。

它是怎么做到的呢?

有人说是控件。控件也许能够实现,但会影响用户体验,QQ 用的是更先进的思路。

QQ 会内置一个小型的 Web Server,提供类似 IIS、Apache 的功能。

访问 QQ 邮箱登录页,这个网页会去访问这个 Web Server,由于是同一台机子访问,所以地址就是:127.0.0.1(实际是 https://localhost.ptlogin2.qq.com:4301/,这个域名指向的是 127.0.0.1,用域名的好处是可以解决 Cookie 跨域等权限问题。),由于这个 Web Server 是 QQ 建立的,所以 QQ 可以根据自己的登录状况给访问者返回对应的信息。

(要验证以上信息:可以用 Chrome 访问 QQ 邮箱登录页,然后按 F12,切换到 Network 标签,从列表中找到 pt_get_uins 开头的,鼠标移上去就可以看到全网址。)

完了?

显然没那么简单,那我的网页也去访问一下,且不是也获取了用户的登录信息和登录凭据?我拿到这个登录凭据是不是我也可以冒名登录?

所以这里面既要防止他人获取我是否已经登录了这种隐私,还要防止他人获取登录凭据。

所以这就要 QQ 邮箱服务器配合,比如可以这样做:先访问邮箱服务器,邮箱服务器产生一个真随机数,比如 123,并存起来,并将 123 交给浏览器。

浏览器拿到 123 后用这个去访问 127.0.0.1 服务。

127.0.0.1 凭 123 向邮箱服务器询问,123 是否有效?

邮箱服务器说 123 有效,并产生一个凭据 abc,并存起来,并将 abc 交给 127.0.0.1。

127.0.0.1 将 abc 反馈给浏览器,浏览器再凭 abc 去邮箱服务器登录。

为防数据窃听,传输全部是 HTTPS。以上只是一种方式,实际可能是其他方式,也可能更复杂。

最后

以上就是开心楼房为你收集整理的android 仿qq单点登录,QQ 的快速登录原理(BS、CS 混合的单点登录)的全部内容,希望文章能够帮你解决android 仿qq单点登录,QQ 的快速登录原理(BS、CS 混合的单点登录)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部