zoukankan      html  css  js  c++  java
  • 第三方登录的一些问题

    1、app端和网站统一用户的问题

    新浪微博:uid微博全站统一,请使用uid作为用户唯一标识, uid通过access_token解析获取。

    QQ:需要发送邮件申请打通两个应用的信息,另外注意一点的就是QQ互联下边有人工服务,连接很快的。如果不理解可以找人工。 connect@qq.com<connect@qq.com>发送到这里,

      如果QQ回复:您好,互联已升级打通方案,目前采用unionID作为识别同一用户的标识,请参考附件文档,完成申请表格,回邮为您处理,感谢!

       可以使用https://graph.qq.com/oauth2.0/me?access_token=$accesstoken&unionid=1 这个方法获取用户的unionid。

      另外注意一点的是两个应用获取个人信息的时候,client_id也就是get_user_info里边的oauth_consumer_key

    微信:用户的unionid是唯一的。

    2、网站项目本身集成(PHP)

    QQ:QQ本身有个集成的demo,自己放在项目中配置下,使用一下就可以了,下边这个是CI的一些

      

    //qqcallback
        public function qqlogin() {
            require_once './libraries/qqConnectAPI.php';
            $qc = new QC();
            $accesstoken = $qc->qq_callback();
            $openid = $qc->get_openid();
            $unionid_url = "https://graph.qq.com/oauth2.0/me?access_token=$accesstoken&unionid=1";
            $unionid_res = file_get_contents($unionid_url);
            if(strpos($unionid_res, "callback") !== false){
    
                $lpos = strpos($unionid_res, "(");
                $rpos = strrpos($unionid_res, ")");
                $response = substr($unionid_res, $lpos + 1, $rpos - $lpos -1);
            }
            $response_arr = json_decode($response,TRUE);
            if(empty($response_arr['unionid'])){
                exit('403');
            }
            $unionid = $response_arr['unionid'];
            print_r($unionid);
            exit();
            if(!empty($accesstoken) && !empty($openid)){
                $devid = "6B4E99F2-3F55-40C3-8B4A-8430172F90A3";
                //***************************
                //下边的就是一些项目的操作已经删除了
            }
        }
        //qq登陆请求的接口//这个直接请求就可以了
        public function qqReq() {
            session_start();
            require_once './libraries/qqConnectAPI.php';
            $qc = new QC();
            $qc->qq_login();
        }

    微博:微博也有demo,复制到项目中路径不出错就可以了,下边的就是微博的demo了

    //微博登录callback
        public function weibocallback(){
            $code = $this->input->get("code",TRUE);
            echo $code;
    //        $posturl = 'https://api.weibo.com/oauth2/access_token';
            include_once( './libraries/saetv2.ex.class.php' );
            $param["code"] = $code;
            $param["redirect_uri"] = $this->WB_CALLBACK_URL;
            $o = new SaeTOAuthV2($this->WB_AKEY , $this->WB_SKEY );
            $res = $o->getAccessToken('code',$param);
            print_r($res);
            if(isset($res['access_token']) && !empty($res['access_token'])){
                
                $accesstoken = $res['access_token'];                               
                $openid = $res['uid'];
                //跟上边一样删除了
            }
            
            
        }
        //微博请求的接口//这个可以放在《a href=""》里边
        public function weiboReq(){
            include_once( './libraries/saetv2.ex.class.php' );
            $o = new SaeTOAuthV2($this->WB_AKEY , $this->WB_SKEY );
            $code_url = $o->getAuthorizeURL($this->WB_CALLBACK_URL );
            echo $code_url;
        }

      

  • 相关阅读:
    20172322 《程序设计与数据结构》第六周学习总结
    20172322 2018-2019-1 10月19日课上测试报告
    20172322 《程序设计与数据结构》第五周学习总结
    20172322 《程序设计与数据结构》第四周学习总结
    172322 2018-2019-1 《Java软件结构与数据结构》实验一报告
    20172322 《程序设计与数据结构》第三周学习总结
    20172322 《程序设计与数据结构》第二周学习总结
    20172303 20172322 2017-2018-2 暑假作业 结对编程项目-舒尔特方格(增补:计时器的加入与页面优化)
    20172322 《程序设计与数据结构》第一周学习总结
    20172322 2017-2018-2《程序设计与数据结构》(上)课程总结
  • 原文地址:https://www.cnblogs.com/aoxueshou/p/6955678.html
Copyright © 2011-2022 走看看