基于SignalR的消息推送和二维码扫描登录实现码
1摘要描述
相信大家都会熟悉使用微信扫描登录。二维码和手机的结合产生了不同的应用场景,基于二维码的应用更加广泛。为了满足ios、android客户端与web短信平台的结合,专门开发了基于SinglarR消息推送机制的扫描登录。该系统涉及以下知识点:
signal er:http://signalr.net/,官网和ASP.NET signal er是ASP.NET开发者的一个库,可以简化向应用添加实时web功能的过程。实时Web功能是指服务器代码可以在内容可用时立即将内容推送到连接的客户端,而不是让服务器等待客户端请求新数据的功能。
二维码:使用的二维码类库,https://github.com/jeromeetienne/jquery-qrcode
MVC5:开发环境基于MVC5
2.系统图
在实现这个功能之前,不确定能不能得到。
所谓万事开头难,靠自己查询数据分析:系统涉及手机客户端、查看器和服务器,扫描登录是如何协调三者之间的工作。通过轴画出下图:
移动客户端、浏览器和服务器之间的协作图
[m]:移动终端[b]:查看器(浏览器客户端)[s]:服务器端、消息推送器和扫描认证接口发布器
步骤描述:
第一步:[B]浏览登录页面;第二步:[S]生成一个标识符UUID,推送给B生成登录二维码;
步骤3,[M]扫描二维码,前提是[M]已经登录,步骤4 [M]解析二维码信息得到UUID;
在步骤5,[m]向服务器发送UUID登录信息;在步骤6,[s]对UUID登录信息进行相关分析和认证;在步骤6,UUID认证失败;然后,在步骤6-1,重新生成UUID循环,并且步骤2-2将uuid认证失败的原因返回给[m],并且步骤6通过认证。转到步骤6-2中的登录信息身份验证和步骤7中的登录信息身份验证。如果步骤7-3失败,UUID循环将在步骤2中重新生成。如果步骤7-1成功,将被推至[b]跳转到主页。
3.信号员循环信息推送
3.1参考信号
由于我使用的是VS15Preview4,所以可以直接使用nuget可视化管理工具进行安装:工具-nuget包管理器-管理用于解决方案的Nuget包…,打开如下界面:
在浏览器选项卡下输入信号,然后找到微软。信号员
/p
找到对应的项目,点击“安装”按钮引用相关类库,下载相关js库。
关于SignalR的知识,可以去http://www.asp.net/signalr,官网深入学习。
3.2服务器信号器实现
服务器要把UUID推给客户端,UUID的唯一标识有重要特点:(1)有时间限制,120秒内扫码有效;(2)具有一定的状态。对应的申报周期是生成-推送-状态判断-手机扫描-UUID-验证-状态判断-销毁等一系列流程。
服务器的核心代码将由一个单独的项目实现:
3.2.1通知类别
这个类将连接QRCodeHub和SessionTimer
使用微软。信号员;命名空间TxSms。SingalR { public static class Notifier { private static readonly IHubContext Context=global host。ConnectionManager . GetHubContextQRCodeHub();公共静态void SessionTimeOut(字符串connectionId,int time) { Context。客户端。客户端(连接标识)。alertClient(时间);} public static void SendElapsedTime(字符串connectionId,int time) {Context。客户端。客户端(连接标识)。sendElapsedTime(时间);}公共静态void SendQRCodeUUID(字符串连接
版权声明:基于SignalR的消息推送和二维码扫描登录实现码是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

















