最近了解了一下第三方登入的API,包括新浪微博、腾讯微博、人人网,因为QQ的API暂时还没成功实现,所以在这里还希望有成功实现的人能给我点拨下,或者提供demo参考。
下面废话不多说,先上一张流程图,经过我的实验,大致所有的流程都是如此:
有人会问为什么第三方登入成功后还要绑定账号,其实也可以不绑定。
如果你的站点本身就没有会员功能,你可以把验证成功后返回的UID当作用户账号,返回回来后判断该UID是否已存在于数据库内,如果有则自动登入,如果没有后台会帮你创建好一条记录并自动登入,这样就实现了一个无需注册,完全使用某第三方网站账号登入的功能。
上图因为考虑到现有的站点已经有会员功能,需要整合一个第三方网站的账号登入功能,所以需要一个绑定的过程。
关于API就不多介绍了,下面提供一个新浪微博的账号登入demo,可以让大家更明白的了解大致流程。
// 弹出登入窗口
WB2.login(function(){
// 验证是否登入成功
if(WB2.checkLogin()){
// api 入口
WB2.anyWhere(function(W){
// 调用 account/get_uid 接口,获取用户信息
W.parseCMD('/account/get_uid.json', function(oResult, bStatus){
if(bStatus){
// 本地验证 uid 是否存在,如果存在则自动登入绑定账户,不存在则不做任何操作
$.ajax({
type: 'POST',
url: 'index.ajax.php',
data: 'ac=checkReg&uid='+oResult.uid+'&type=1',
success: function(msg){
if(msg == 1){
// 已登入,刷新页面
location.reload();
}else{
// 未绑定账号,进行绑定或者注册
// do something
}
}
});
}
}, {}, {
method : 'get',
cache_time : 30
});
});
}
});
最后回到本文第一句,关于QQ登入的实现,还没有做出来,如果有人知道,希望能在下面留言告诉我,跪谢~