实现网站二维码扫描登录

简介:   实现网站二维码扫描登录 分类: 架构设计2014-03-31 10:33 14613人阅读 评论(6) 收藏 举报 在尝试使用网页版微信时,发现微信的登录方式比较酷。区别与常用的用户名和密码的登录方式,网页微信登录只需要轻轻一扫,即可方便的实现登录功能。
 

实现网站二维码扫描登录

分类: 架构设计

在尝试使用网页版微信时,发现微信的登录方式比较酷。区别与常用的用户名和密码的登录方式,网页微信登录只需要轻轻一扫,即可方便的实现登录功能。

 

下面尝试根据个人的理解对其可能的架构猜测一番。总体来看,扫描二维码实现网站的登录并不是太困难的事情。首先来看一下二维码登录的整体架构:
在整个架构中,主要包含了几个模块:手机App、浏览器、Web服务器以及存储服务(session服务)。整个方案的主要流程如下:
1)获取二维码
在打开weixin.qq.com整个页面之后,会在浏览器端种下sessionid,其中sessionid与浏览器中展示的二维码已经了映射关系。如方案一架构图所示:Web服务器接收到浏览器的<1.获取二维码>请求之后,生成与这个连接对应的session以及二维码图片,同时存储sessionid与二维码图片的一一映射关系(必须保证二维码图片与sessionid的唯一性,后面流程中,需要根据二维码图片来检索sessionid以实现通知该浏览器实现登录);
 
2)扫描二维码
手机App扫描浏览器的二维码图片,在手机App上完成确认授权之后,自动将手机App的登录态信息提交给Web服务器。Web服务确认提交等手机登录态合法之后,根据二维码检索出浏览器的链接信息即sessionid,与之对应的sessionid被设置为已经完成登录,同时绑定合法的浏览器端的用户登录态信息;
 
3)通知浏览器完成登录
浏览器如何及时的获取已经完成授权登录了呢?其实,针对这类问题主要有两种解决方案:
a)ajax异步定时轮训请求
采用这种方法技术实现成本比较低,伪实时,实时性的程度取决于ajax请求的频繁程度,高频度的请求无疑会给服务器带来不小的开销,所幸的是,针对这个登录场景并发请求量不会太高;
b)Http comet实时推送
采用comet实时推送给的方案,就是下图方案二所示,手机App确认授权之后,推送服务会将浏览器的登录信息实时推送给浏览器,这种方案的实时性无疑是最高的,在网页聊天、即时监控等场景下比较使用,用户的产品体验也会非常高,带来的问题在于:高昂的技术实现成本。
 
 
4)本地浏览器绑定cookie
浏览器接收到通知之后,架构用户信息关键是用户登录凭证写入到浏览器的Cookie中,在后续请求其他服务的过程中,作为最基本的请求参数进行传递;
 
 
关于Comet推送的技术请参见:
 
其实,上面写的都是错的,我压根没有做过类似的服务。
目录
相关文章
|
11月前
|
存储 数据可视化 数据库连接
如何通过 Websoft9 应用自托管平台一键安装任意版本 Odoo?
Odoo 手动部署流程复杂,涉及环境获取、容器配置和后期维护等多个环节,对技术要求高且耗时长。Websoft9 提供一键安装方案:预置 Docker 环境免配置、集成加速镜像仓库、参数模板化配置以及便捷的生命周期管理,大幅降低部署门槛与时间成本。对比手工部署,Websoft9 在各环节显著提升效率,如 Docker 安装从 30~60 分钟降为 0 分钟,版本升级由手动迁数据变为 1 次点击完成。
|
传感器 数据采集 IDE
【ESP32双核运行Freertos及互斥量】
【ESP32双核运行Freertos及互斥量】
1397 0
|
安全 生物认证 数据安全/隐私保护
多因素认证(MFA)
【8月更文挑战第20天】
3007 1
|
机器学习/深度学习 分布式计算 自然语言处理
「技术选型」Keras、TensorFlow和PyTorch的区别
「技术选型」Keras、TensorFlow和PyTorch的区别
|
存储 编解码 数据挖掘
如何使用FFmpeg的解码器
如何使用FFmpeg的解码器
318 0
|
Java 编译器 Spring
升级IDEA后Lombok不能用了,如何解决?
升级IDEA后Lombok不能用了,如何解决?
1072 0
升级IDEA后Lombok不能用了,如何解决?
|
编解码 数据可视化 定位技术
Qt编写数据可视化大屏界面电子看板10-改造QCustomPlot
一、前言 为了抛弃对QChart的依赖,以及echart的依赖,(当然,后期也会做qchart的版本和echart的版本,尤其是echart的版本是肯定会做的,毕竟echart的效果牛逼的一塌糊涂,全宇宙最牛逼吧。
1761 0
|
3天前
|
人工智能 自然语言处理 JavaScript
2026年Windows+Ollama本地部署OpenClaw保姆级教程:本地AI Agent+阿里云上快速搭建
2026年OpenClaw凭借本地部署、私有化运行的特性,成为打造个人智能体的核心工具,而Ollama作为轻量级本地大模型管理工具,能让OpenClaw摆脱对云端大模型的依赖,实现**本地推理、数据不泄露、全流程私有化**的智能体验。本文基于Windows 11系统,从硬件环境准备、Ollama安装与模型定制、OpenClaw部署配置、技能扩展到常见问题排查,打造保姆级本地部署教程,同时补充阿里云OpenClaw(Clawdbot)快速部署步骤,兼顾本地私有化需求与云端7×24小时运行需求,文中所有代码命令均可直接复制执行,确保零基础用户也能快速搭建属于自己的本地智能体。
5560 31

热门文章

最新文章