标题:
QQ第三方登录程序编写方法
[打印本页]
作者:
jialinx
时间:
2015-9-14 13:17
标题:
QQ第三方登录程序编写方法
序:
自从8.12天津滨海爆炸到现在一直没上班。闲的手痒痒,由于逃难的时候没有把笔记本带出来。所以自己的小网站也不能继续。网站写着玩的,所以流量与用户一定很少。就不打算做“注册/登录”模块了,这年头出来上网的有几个没有QQ的(其实就是懒。。。)。直接用QQ第三方登录拉取用户资料。我省事、“用户”也省事。
准备工作:
1、注册腾讯开发者帐号
2、申请网站(移动应用)接入
3、向空间、财付通等需要审核
简单的Demo:
1、登录
2、验证是否登录成功
3、注销登录
4、获取OpenID与Access Token
5、根据OpenID拉取用户资料
步骤:
0、引入腾讯JS SDK
<script type="text/javascript" src="
http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js
"
data-appid="AppID" data-redirecturi="RedirectURL" charset="utf-8"></script>
AppID:网站/移动应用申请的AppID
RedirectURL:登陆后网站的跳转地址。必须为http或https。具体自己看API吧
1、登录 (我认为一般网站常用的都是这个样式的登录)
QC.Login.showPopup({
appId: "AppID"
});
2、验证是否登录成功
QC.Login.check()
成功:true
失败:false
3、注销登录
QC.Login.signOut()
4、
获取OpedID与
Access Token
QC.Login.getMe(function (openId, accessToken) {
});
5、
根据OpenID拉取用户资料(有问题)
这个需要根据OpenID Get请求获取Json数据(用户基础信息),通过Ajax涉及到跨域访问问题。今天太晚了就不研究了,但是我通过拼接出来的字符串是可以获取到用户信息的。
oauth_consumer_key:AppID
oauth_consumer_key:accesstoken
openid:openid
format :json // 返回的数据格式
返回参数说明:
Demo:
原API地址:
http://wiki.connect.qq.com/js_sdk%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E
序:
继上一篇继续德波。上一篇在Ajax请求的时候发生异常。问题是由于Ajax跨域访问的问题,而JS的Ajax出现问题也是这个原因。临睡觉前想了一下既然Ajax不让跨域(非绝对)那我可以搭建一个中间层(我是用的中间层是ASHX一般处理程序)。这样的好处是可以一次请求前后台皆获取到数据,并后台先获取到数据保存到Session中。然后在Response到前台。
步骤:
1、前台同样是一个Ajax请求,只是把URL改为本域下的ashx。把必要的参数发送到ashx让他通过WebRequert在去请求外站的接口。后台实现的基本代码为下图(PS:ashx中如果想操作Session必须实现IRequiresSessionState接口):
其中的WebRequestToJson web = new WebRequestToJson();为自己封的工具类,也就是Get请求WebService方法。获取用户信息必须使用Get请求!!!
2、后台请求后把数据发送到前台就可以了。貌似TX为了保护用户资料只对第三方网站提供了openID,不允许第三方站点获取QQ登录帐号。
作者:
80403584
时间:
2018-4-2 11:30
楼主可以把你的这份源码发给我吗
80403584@qq.com
谢谢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1