`
a283037321
  • 浏览: 16852 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

微信开发之PC端扫描登录

阅读更多

    刚打算写这篇文章,发现刚刚有人已经发布了,作者很给力,我说说我自己的经验,给需要帮助的人更多的参考吧。

    在discuz的官网http://www.discuz.net/forum.php 有个很吸引的功能,微信账号登录。起初有很多人问过我怎么实现这个功能,我特意去查了微信的文档,微信官方其实是没有这个接口的。它与普通的oauth2.0授权不一样,这是跨客户端了。需要手机微信和PC浏览器相互配合才能完成,所以单纯的oauth2.0接口是做不到一键登录的。

    好在有了需求就知道该往哪方面发展了,有可以研究的技术是一件很幸福的事。

 

    大体流程:

 

    没怎么使用过iteye,不知道怎么发图片,所以我用文字大体描述一下流程吧。

    PC端生成随机参数 ---> 生成带参数的二维码(带上随机参数) ---> 启动轮询查询是否验证成功 ---> 

扫描二维码 ---> 微信服务器回调咱的验证地址 ---> 将验证结果放入数据库带上二维码中的随机参数 --- >

pc端轮询到结果,如果成功则登录  --- > 登录成功

 

    实现步骤:

    

    看上面的流程,估计不会的还是不会,因为讲的太笼统,但是我们要按照这个思路去实现功能。

 

   1、生成随机数,var uuid; 

 

    2、生成二维码,因为二维码就是一个url,我们要做的就是把微信的oauth2.0认证地址加密成二维码,并且回调地址填写我们的服务器验证地址。

 

    首先生成二维码,推荐前台生成,我使用的是jquery.qrcode.min.js,二维码的加密字符串为:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxxx&redirect_uri=http://服务器验证地址/" + uuid+"&response_type=code&scope=snsapi_userinfo&state=0#wechat_redirect

,建议使用网址缩短,不然生成的二维码太过密集影响使用。

 

   3、显示二维码的时候同时启动轮询,带上uuid去后台验证是否登录成功,怎么登录请往下看。

 

   4、微信扫描二维码后会调用我们指定的回调地址,并且回调地址中有UUID,上述地址跳转到我们action方法中时会有带上code参数(参考微信oauth2.0网页授权),根据code可以获取openId,也就可以判断用户是否存在了。如果用户存在,则将用户ID和UUID放入数据库表中(建议使用缓存,我使用的是mongodb),前台轮询时因为带上了uuid,后台根据UUID找到了验证后的用户ID,此时将需要的session信息初始化并且返回登录成功的标识到前台,前台接收到结果后进行跳转,到此微信登录完成。

 

    思考:

    为什么使用轮询,因为微信的认证已经脱离了PC客户端,故不能直接进行前后台交互。而如果不考虑兼容性问题,也可以使用websocket,原理是一样的。

    微信登录可以说是一个高大上的功能,不需要输入繁琐的密码,轻轻一扫即可登录,对既有PC端又有微信端的网站用处很大,很值得一试。

 

    如有不懂,请留言,我会努力解答。如果错误,欢迎指正。

 

 

 转载请保留出处,尊重原创,

http://a283037321.iteye.com/blog/2149430

4
0
分享到:
评论
5 楼 Sarlly 2015-05-26  
辛苦了,楼主。 
4 楼 liangyao 2014-10-29  
   
3 楼 liangyao 2014-10-29  
2 楼 China2010pan 2014-10-29  
楼主写的很细心a,辛苦了
1 楼 lixin032190 2014-10-29  
学习了,

相关推荐

    CWeixin 类,可以做微信PC客户端

    可以用这个类来编写微信PC客户端,完成微信消息收发。 void Attach(HWND hWnd); //设置关联窗口 HGLOBAL GetQRCode(); //得到登录二维码(内存) BOOL GetQRCode(LPCTSTR lpszPath); //得到登录二维码(文件) ...

    PC电脑微信c#源代码

    微信PC版协议实现,本人亲自调试通过,不会出现1100的错误,值得你做二次开发: 1.获取服务器分配的一个唯一会话ID 2.通过会话ID获得随机登录二维码 3.轮询手机端是否已经扫描二维码并确认 4.访问登录地址,获得uin...

    PHP微信PC二维码登陆的实现思路

    另外看微信开发文档中存在一个scan事件,可以检测用户使用微信扫描二维码并获取值。其实问题的关键就在于这个值,这个值算是一个联通PC和微信的通信ID了。 二、具体实现流程(下面代码使用了TP5的框架,有个大前提是...

    ASPNET支付宝和微信支付源代码(PC扫描支付和手机支付)源码

    微信支付,支付宝支付,PC扫描支付和手机支付 二、功能介绍 1、支持“支付宝”扫描支付和手机支付,只要把相关支付参数配置到程序里面,就可以正常使用支付; 2、支持“微信”扫描支付和公众号支付,只要把相关...

    Android项目源码仿微信登录注册聊天换肤二维码扫描.zip

    是一个csdn上的朋友的原创项目,原帖可以看这里http://blog.csdn.net/ericfantastic/article/details/49451249 实现了微信的登录注册、主界面、聊天会话、通讯录、发现界面、个人设置、添加好友、扫描二维码、视频...

    微信支付开发代码实战案例

    PC网站场景:在网站中展示二维码,用户使用微信扫描二维码,输入需要支付的金额,完成支 付。 特点:用户在客户端输入支付金额 1.3、小程序支付 在微信小程序平台内实现支付的功能。 1.4、Native支付 Native支付是指...

    c#版在pc端发起微信扫码支付的实例

    等了好久,微信官方终于发布了.net的demo。 主要代码: /** * 生成直接支付url,支付url有效期为2小时,模式二 * @param productId 商品ID * @return 模式二URL */ public string GetPayUrl(string productId...

    mp-scan-login-demo:PC端扫描小程序码登录demo

    基于小程序页面授权,使用微信扫描PC端小程序码实现获取用户信息进行系统登录。 即:PC扫小程序码登录。 使用技术 vue:2.6.11 vuex:3.1.2 vue-router:3.1.5 element-ui:2.13.0 koa:2.11.0 小程序云开发 安装 web端 ...

    微信VC++版

    微信PC版协议实现,本人亲自调试通过,可做二次开发: 1.获取服务器分配的一个唯一会话ID 2.通过会话ID获得随机登录二维码 3.轮询手机端是否已经扫描二维码并确认 4.访问登录地址,获得uin和sid

    微信公众号网站使用vue获取用户openid等信息

    开发微信公众号时通过vue页面获取用户静默授权/非静默授权后的信息,整个一套代码全部嵌套在vue界面中。

    视频教程PHP进销存源码ERP多仓库管理系统带小程序 app

    PC电脑端+手机端版本,可以微信小程序。多用户多仓库,带扫描枪功能 本系统开发 PHP + MySQL pc端采用CI2.x框架,手机端采用的是laravel7.4 本系统运行环境 pc端php5.6 手机端php7.4 需要分别部署 手机端可...

    毕设之高校毕业管理系统小程序--(源码+部署说明+SpringBoot+微信小程序+vue).zip

    前端技术:微信小程序和Vue作为前端技术,分别用于移动端和PC端的用户界面展示和交互。微信小程序可以实现扫描二维码即可使用,无需下载安装,方便快捷。Vue是一种轻量级的前端框架,具有简单易学、组件化开发等特点...

    YouDianCMS v6.8.1 PC手机微信三合一 友点企业网站管理系统 三站合一网站

    1.[新增]实现微信支付功能(微信公众号支付和微信扫描支付) 2.[新增]实现QQ账号登录 3.[优化]优化支付流程,支付时,可以选择不同的支付方式 4.[修复]修改翻译时间结果的错误 5.[优化]当频道很多是,修改频道变得很...

    TPshop 2.0.8.zip

    TPshop是用thinkphp开发的一款免费开源网店系统,适合企业及个人,包含(微信商城 ...6.PC端微信扫描登录; 7.添加预售功能; 8.添加申请提现在线转账;9.添加OSS云图片;10.添加小程序;11.升级api; 12.添加发票模块。

    一套电商产品(包含PC端+后端+手机端(公众号+小程序)).zip

    此外,其背后的开发团队持续迭代更新,根据用户反馈不断优化产品性能,提升服务质量,致力于打造一个贴近用户需求、充满活力的小程序生态。 总结来说,【小程序名称】凭借其小巧便携、快捷高效的特性,不仅节省了...

    浅析发票识别.docx

    可应用在PC端、APP端、微信公众号等各种应用场景,用户可针对不用的应用场景,自主选择服务方向。 4、兼容性好,快票通系统兼容形变、褶皱、阴影等多种非正规图像。同时支持扫描仪、摄像头、高拍仪等各类图像采集...

    微信通源码+wap手机版

    2014.11.20:新增微信后台提供"粉丝删除"功能,在网站运营中如果出现在PC端删除会员后,无法再次注册的情况,可以完美的解决。 2014.11.19:手机会员中心新增“详细推荐信息”可以查看自己的下线和下线的下单情况...

    nanoserver:演示

    基于开发, 本程序主要用于演示如何使用nano进行游戏服务器程序开发, 演示客户端下载地址:iOS:Android:Source Code: 微信群公告Prebuilt: 如果要连接自己的服务器简单模式: 使用PC客户端/Mac客户端(不支持微信登录, ...

    Android应用源码安卓源码包wifi蓝牙串口&Socket通讯窗口抖动Widget小组件等20个合集.zip

    【仿微信即时聊天】xmpp4Android 第一期.rar 串口开发的demo,里面包含JNI文件.rar 串口编程资料.rar 安卓蓝牙对战demo实例.rar 实现抖动窗口.rar 模拟Activity进出栈.zip 用Roboguice实现依赖注入-.zip 监听自身...

    74cms 骑士人才系统 v4.1.23 正式版 人才招聘系统源码

    修复 简历详情页自动识别PC/触屏端 修复 触屏版链接错误问题 修复 企业刷新职位,微信付款后职位没有刷新问题 修复 后台‘安全设置’链接错误问题 修复 分站下部分服务器环境分页链接错误问题 修复 后台‘下载简历...

Global site tag (gtag.js) - Google Analytics