微信二维码授权登录网站的实现

发布时间:2022-11-18 17:09:45   来源:文档文库   
字号:
开发案例 文章编号:1007—1423(2017)01—0070~03 DOI:10.3969/ssn.1007—1423.2017.01017 微信二维码授权登录网站的实现 陈彩云,李鹏,温武,郭四稳 (广州大学计算机科学与教育软件学院,r-' 510006) 摘要: 区别于常用的用户名和密码的登录方式,采用微信二维码授权的登录只需手机轻轻一扫,即可方便地实现登录功能 网站开发者只需在微信注册一个公众号或者服务号,利用微信公众号的授权接口,可以实现网站二维码登录。给出实 现这种登录功能的基本原理.并给出具体的实现步骤 关键词: 微信:公众号:二维码 基金项目: 广东省2015年度高等教育教学改革项目(粤教高i ̄[2015]173 g-)、广州大学2016年度教育教学研究项目(rg ̄2016] 149号1 0 引言 随着微信的广泛使用.其大力推广的基于二维码 情请查看微信文档:htp:mp.weixin.qq.com/wiki/17/c0f3 7d5704f0b64713d5d2c37b468d75.htm1).生成一个可以 的登录方式也得到了广泛的应用,不管是微信号、公众 号、网页地址还是图片地址,甚至个人通讯录名片都可 以做成二维码,通过微信扫一扫功能即可以快速打开、 获取微信用户身份信息的URL.当用户在电脑端打开 网站登录页面时.服务器将该URL的信息传送给电脑 端浏览器.并以二维码的形式展示到网站的登录页面 上。同时网页还会启动一个定时器。通过AJAX周期性地 使用、浏览和添加。微信本身的网页版本和电脑版本也 都采用了扫描二维码的方式登录 基于二维码的登录方 式非常简便快捷,因此深受欢迎.几乎成为一种时尚。 向服务器询问是否有用户扫描二维码并授权登录 此时.如果有手机用户使用微信的扫描二维码功 能扫描网页上的二维码.便会获取到如前所述的URL. 通过该URL.用户会首先访问微信服务器.并从微信服 务器获取一个表示用户身份的唯一标识码 接着用户 访问网站服务器.将微信服务器提供的唯一标识码传 递给网站服务器.网站服务器便获得了用户的授权 随 后网站服务器发送一个表示授权成功的页面显示到手 目前.微信没有将授权登录的功能完全开放给普通 网站,作为网站开发者,如何实现扫描二维码登录呢?网 络上一些编程爱好者提出了多种设想Ⅲ.却通常未得到 实际验证 笔者比较早接触微信公众号项目.在开发实 践过程中摸索出了具体可行的方案.这种方案是通过微 信公众号提供的接口功能来实现微信授权登录.与一些 网络可循的设想有类似之处.但思路和技术细节不尽相 同 本文将以项目中实现的微信二维码授权登录网站功 机上(该页面需要开发者自己制作)。网站服务器获得 用户的授权之后会将唯一标识码发送给微信服务器. 微信服务器根据这个唯一标识码将用户的基本信息传 递给网站服务器。最后,网站服务器把获得的用户信息 能作为一个开发案例.详细讲解其过程  微信授权登录原理 网站服务器通过微信公众号提供的授权接口(详 通过AJAX传递给电脑端网页.电脑端网页显示授权 通过.登录成功 ① 现代计算机2017.01上 
2 开发准备 为了完成这个案例.必须先准备好以下几个条件: 需要一台网站服务器(简称服务器)和一个有效域名; 已经申请一个认证的服务号(微信公众号中的一种). 或微信提供的开发者公众号.并关联到网站服务器: 开发者需要掌握一种后台编程语言.本文选用Nodej 语言[:此外,开发者需要掌握基本的HTML[ ,Java— ScriptAJAX开发技术。 3 具体实现步骤 第一步。生成一个静态手机页面,提示授权成功。 页面效果如图1所示 - 图1授权成功页面 第二步,生成带微信授权URL的二维码。本文采 用N0dejs+Express+Redis的方案来实现。首先,根据微 信提供的授权接口.生成如下URL(其中下划线标识的 部分是网站服务器本身的地址.手机将根据这个地址 去访问网站服务器):htpsopen.weixin.qq.com/connecf oauth2/authorize?appid=…&redirect_uri=http%3A%2F% 2Fwww.%E6%8E%88%E6%9D%83.com&response_type= c0de&sc0pe=snsapi_base&state=farain#wechat_redirect 实现代码如下: var creaeAuthUrl=functon(nputUr){,/生成一个授权 链接 var url:encodeURIComponentnputUr retumhttps:/open.weixin.qq.com/connectoauth2/au— hofze? +"appid= +公众号的appid+ &rediect_uri= +url+ &response_ype=code&scope=snsapi_base&stat=farain# wechat_redirect   接着.将生成的URL转换成二维码。生成二维码 的方式很多.可以在后台生成图片。也可以在HTML上 动态生成。本文采用HTML上通过调用qrcode的is来 生成(该js可以通过以下链接下载:htp:davidshimjs. gihub.o/qrcodejs/)。 第三步.把二维码显示到电脑端登录网页上.并启 动AJAX轮询是否有手机用户扫描该二维码。图2截 取了登录页面的一部分: 图2网站登录页面 第四步.如果有用户利用微信的扫描二维码功能 扫描上一步生成的二维码.这时手机端的微信软件会 打开第一步生成的授权成功提示网页。同时.网站服务 器在后台获取了该用户的个人信息.并将其记录到某 个文件中。此过程中微信授权的代码如下: var getAuth:funcon(code,calback){,/通过授权得到 openid /code是微信通过授权返回的唯一标识码.详情请参阅 微信接口文档 var url= https://apiweixin.qq.eom/sns/oauth2/aceessto— ken?appid= +公众号appid+ &secret= +公 众号的appsecret+ &code= +code+"&grant_ype=authoriza— tion_code ; myhtp.getJson(ur,funcon(er,data) er){ calback(er }ele{ /通过该链接可以获得用户的基本信息.例 如头像、性别、昵称等 var url="https:/api.weixin.qq.com/sns/userin— o?access token= +access token 现代计算机 2017.01上 
开发案铡。 +"&lang=zhCN&openid= +data.openid; return false; myhtp.getJson(ur,functon(er2,data2) er2)calback( else caback(alse,data2)    ,1000) 4 结语 本文给出了通过微信扫描二维码登录网站的基本 代码实现。为了突出重点,文中代码只实现了基本功 能.若要做到真正实用,还需要做不少优化。例如:二维 码有效期的控制(前后端都需要定时刷新);对已关注和 未关注公众号的用户做不同的处理(未关注的可以引导 用户先关注):手机端的授权页面通常需要一个“确定” 按钮.即扫描完二维码后.用户可以选择授权或者不授   第五步.后台页面的AJAX轮询到用户授权结果, 直接跳转到登录成功页面。代码如下: setntelwaluncton0f//轮询后台是否有用户扫描二维码 ¥.pos 轮询地址 .{gin:ue} funcon(data) data==,k,){ ocaon.href= 登陆后的页面网址 :  权 本文只起到一个抛砖引玉的作用。希望和互联网应 用开发的学习者、工作者和爱好者们一起探讨,来开发 出更多有趣、实用的应用来丰富、方便人们的生活。 参考文献: 1]htp:www.cnblogscoroogn/p/3727953.html 2]BYVoid.Node.js开发指南[M】北京:人民邮电出版社,2012. 3]Mark Pigrm著;常可,胡金埔,赵静译.HTML2  ̄=HTML5:up and unning[M]北京:电子工业出版社,2010 41Paul Wion。JeremY McPeak著;张敏,高宇辉,王东亚译.JavaScrpt入门经典.北京:清华大学出版社,2011. 作者简介: 陈彩云(1979一),女,湖南醴陵人,教师,博士,研究方向为信号处理、算法设计与分析 收稿日期:2016—10—25 修稿日期:2016—12—25 Login Websie by WeChat QRcode Authorzation CHEN Cai—yun,LI Peng,WEN Wu,GUO Si—wen (School of Computer Science&Educational Software.Guangzhou Universiy,Guangzhou 510006) Abstract: Diercnt om the usename and pasword  login,WeChat QRcode authories logon need only a scanning by mobie phone.To eale a ogin by QRcode,we should regier an ofci aceount or ervie account in WeChat fy,and then use nteraces provided by WeChat or authorat0n.Present a detai about how o eale he functon of ogin by QRcode. Keywords: WeChat;Omcial Account;QRcode @ 现代计算机2017.01上 

本文来源:https://www.2haoxitong.net/k/doc/9129ac73122de2bd960590c69ec3d5bbfd0adaed.html

《微信二维码授权登录网站的实现.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式