微信扫描登录
来源:互联网 发布:windows xp 韩文版 编辑:程序博客网 时间:2024/06/11 06:44
微信扫描登录
本文主要介绍如何实现使用微信的二维码扫描登录系统功能。
功能需求
PC系统功能,希望借用微信的oauth授权方式,来实现本系统的登录。而最简单的方式就是用户通过扫描二维码,然后在手机端进行确认,之后在PC端实现登录。
实现原理
以上的业务期望,首先我们需要转化为实际的开发需求,根据上面的期望,我们可以了解其需要两个平台支持PC端和手机微信客户端。
PC端:登录二维码扫描页面
主要负责在用户进入当前页面后,根据当前用户的cookie和时间字符串阶段性的生成一个唯一键值,并产生一个唯一的手机访问的url。例如:当前有唯一cookie字符串(adccccc),时间戳为(1425351101),那么根据一定的加密规则后,生成一个唯一键值(df3a4de2af34)。根据这个唯一键值,生成唯一的手机访问url为:
http://www.test.com/oauth?key=df3a4de2af34
手机微信客户端:OAUTH授权登录页面
主要工作就是在手机端使用微信的oauth登录,登录成功后根据当前的唯一键值,以及登录的session信息和用户信息保存到公共内存资源中。PC端通过socket或者轮询方式查询该键值是否已经登录成功,如果成功登录则在PC端保存用户登录session,并提示PC前端。
以上过程可以简化为下图模式。
1. 用户打开PC页面,就可以看到一个二维码,类似如下图。二维码其实包含的仅仅是一个手机端oauth授权的url;
2. 用户通过微信扫描二维码,打开oauth授权页面;
3. 用户成功授权后,服务端获取用户登录信息,以及其所携带的唯一键值;
4. 通过socket或者轮询方式通知PC端,当前已经成功登录,并赋予当前PC端session信息。
多系统单公众号应用
在应用的过程中会发现一个公众号可能需要支持多个平台,但是微信授权只支持一个绝对域名,因此如果希望一个帐号多个平台共享是无法实现的。
解决办法就是通过统一的一个平台去做手机端授权管理,然后针对键值的生成规则,将其保存到不同的共享内存中。
例如:有A、B和C三个平台,然后E平台是作为手机端统一授权服务器。A、B和C平台通过特殊标识生成一个唯一的键值,然后在E平台登录成功后,E根据解析出来的键值将登录信息写入不同的平台的共享内存。而A、B和C都在自己的专属平台上判断共享内存的某个键值是否登录即可。
- 微信扫描登录
- 微信扫描二维码快速登录网站
- 微信扫描二维码登录网页原理
- 微信扫描二维码,实现自动登录
- 微信第三方二维码扫描登录
- php微信扫描关注登录
- 微信扫描二维码登录网站代码示例
- 微信扫描二维码登录网站技术原理
- 微信扫描二维码登录网站技术原理
- 微信扫描二维码登录网站技术原理
- iOS开发 - 微信扫描二维码登录网页的原理
- 微信扫描二维码登录网站技术原理
- 微信扫描二维码登录网站---href设置二维码大小
- 微信扫描二维码登录第三方平台
- C#利用HttpClient获取微信Web扫描登录二维码
- 微信扫描支付
- 浅谈扫描二维码登录微信网页版与摇一摇传图的实现原理
- 实现手机扫描二维码页面登录,类似web微信-第一篇,业务分析
- Linux Suspend流程介绍
- ViewConfiguration
- AFNetworking post请求
- 【Hadoop基础教程】3、Hadoop之伪分布式环境搭建
- 在ueditor编辑器的光标停留处插入内容
- 微信扫描登录
- java 获取当前项目的环境资源文件工具类
- Android针对不同的手机屏幕大小设计图片资源与编码
- Linux 指令详解 vi 交互式文本编辑器
- [动态规划] 放置街灯 Uva 10859 - Placing Lampposts
- 关于正则表达式全部符号解释
- 整理Android的列表的一行布局
- Qt之QFileIconProvider(获取文件图标、类型)
- 简单选择排序算法java源码