作者:只属于我一个人的秘密 | 来源:互联网 | 2013-12-10 21:22
给linux命令在线中文手册加了,qq登录和新浪微博登录,认证用的是auth2.0,并且用了jsapi和phpapi相结合的方式来做的。个人觉得这种方式,兼顾安全和人性化。以前写过一篇关于申请的博客,请参考:qq登录,新浪微博登录接口申请过程中遇到的问题
给linux命令在线中文手册加了,qq登录和新浪微博登录,认证用的是auth2.0,并且用了js api和php api相结合的方式来做的。个人觉得这种方式,兼顾安全和人性化。以前写过一篇关于申请的博客,请参考:qq登录,新浪微博登录接口申请过程中遇到的问题
1,js api的优点,就是弹窗登录,不要跳来跳去,烦的很,数据都是后获取的,可以通过浏览器的开发者工具,看到返回的数据,这样保存api返回的数据就不安全了,在浏览器上可以直接写代码,模拟提交
2,php api的缺点,页面跳转,个人感觉跳来跳去,非常让人不爽。但是在保存数据时,要安全的多,并且随时可以到第三方进行数据审核。
如果二者结合起来,不用跳来跳去,数据也可以得到校验。
一,qq登录
qq登录,JS API登录,并获取个人数据,异步提交给php程序,php程序,对提交来的数据,进行第三方校验,也就是说,根据传来的参数,在请求一次php的api,来获取信息,入本地数据库。qq的open id是qq的唯一标识,主要代码如下。
1,js代码
function qq_login(){
QC.Login({
btnId:"qqlogin",
scope:"all",
size: "A_M"
}, function(reqData, opts){
if(QC.Login.check()){
QC.Login.getMe(function(openId, accessToken){
if(openId){
$.ajax({
type:"POST",
url:"./?mod=ajax&app=ajax_login&act=qq",
async:false,
data:{'openid':openId,'access':accessToken,'login':'only'},
success: function(msg){
if(msg == 'yes'){
这里是你的操作
}
}
});
}
});
}
});
}
require_once("路径/qqConnectAPI.php"); //顶部包含这个文件
public function qqAction(){
if(empty($_POST['openid']) || empty($_POST['access'])){
echo "no";
exit;
}
$this->open_id = $_POST['openid'];
$this->access = $_POST['access'];
$qc = new QC($this->access,$this->open_id); //对数据进行校验
$arr = $qc->get_user_info();
$result = $this->save_qq($arr); //保存数据
if(!empty($result){
echo "yes";
exit;
}else{
echo "no";
exit;
}