Heim > php教程 > php手册 > qq登录,新浪微博登录 ,接口开发

qq登录,新浪微博登录 ,接口开发

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-06 20:10:06
Original
1477 Leute haben es durchsucht

给linux命令在线中文手册加了,qq登录和新浪微博登录,认证用的是auth2.0,并且用了js api和php api相结合的方式来做的。个人觉得这种方式,兼顾安全和人性化。以前写过一篇关于申请的博客,请参考: qq登录,新浪微博登录接口申请过程中遇到的问题 1,js ap

给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'){
                                这里是你的操作
                             }
                        }
                     });
                }
            });
        }
   });
}
Nach dem Login kopieren

2,php代码

    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;
        }
Nach dem Login kopieren

二,新浪微博登录

js api登录过程,获取到登录数据,并且存储到cookie中,异步提交时,不用传参数到,php程序。php api有方法读取登录的access token,并获取唯一标识,user id

在这里再吐槽一下,新浪的接口,还是不错的,可就是尼玛,文档乱的一踏糊涂,找个东西,那叫痛苦。

1,js 代码

新浪微博的app key,app secret有多个,一个是网站的app key,app secret,网站下,每个创建应用都有一个app key,app secret。
function weibo_login (){
      WB2.anyWhere(function(W){
        W.widget.connectButton({
            id: "weibologin",
            type:'3,2',
            callback : {
                login:function(o){    //登录后的回调函数
                    $.ajax({
                        type:"POST",
                        url:"./?mod=ajax&app=ajax_login&act=weibo",
                        async:false,
                        data:{'login':'only'},
                        success: function(msg){
                             if(msg == 'yes'){
                                你的操作
                             }
                        }
                     });
                }
            }
        });
    });
}
Nach dem Login kopieren

2,php代码

    include_once('路径/config.php');
    include_once('路径/saetv2.ex.class.php');
    public function weiboAction(){
        $o = new SaeTOAuthV2( WB_AKEY , WB_SKEY );
        $access = $o->getTokenFromJSSDK();       //从cookie中获取数据
        $c = new SaeTClientV2( WB_AKEY , WB_SKEY , $access['access_token'] );
        $user_message = $c->show_user_by_id( $access['uid']);
        $result = $this->save_sina($user_message);      //保存数据
        if(!empty($result){
            echo "yes";
            exit;
        }else{
            echo "no";
            exit;
        }
    }
Nach dem Login kopieren

三,小结

qq登录和微博登录的接口都还是不错的,qq登录在实用性,灵活性,安全性上,比微博就好一点。特别是文档方面,qq登录比微博登录好的太多。新浪微博团队能不能改进一下呢。这就好比,有了家电,没有说明书是一样的。

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage