码迷,mamicode.com
首页 > 其他好文 > 详细

Aouth认证

时间:2015-05-14 06:19:28      阅读:363      评论:0      收藏:0      [点我收藏+]

标签:第三方

一、qq的第三方认证

打开qq互联  http://connect.qq.com/      ,创建应用 

技术分享

创建成功后会有   App Id 和App Key   

技术分享



下面我们就可以添加我们的网站地址,然后进行认证,并输入回调地址,这样我们的qq第三方就配置完成了。代码实现如下,可供参考

html代码如下

<meta property="qc:admins" content="160022761067251627000636" />
<html>
    <head>
        <meta charset="utf-8" />
        <title>第三方登录</title>
    </head>
    <body>
        <a href="https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=101197633&redirect_uri=http://zhangrui.bwphp.cn/index.php&state=test"><img src="/qq.png"/></a>
    </body>
</html>

php代码如下

<?php
header("content-type:text/html;charset=utf-8");
    //获取Authorization Code
    $url = ‘https://graph.qq.com/oauth2.0/token?client_id=101197633‘
         .‘&client_secret=6f0d2d83bdf8e43b96e468e9ca5dd6ca‘
         .‘&redirect_uri=http://zhangrui.bwphp.cn/index.php‘
         .‘&grant_type=authorization_code‘
         .‘&code=‘.$_REQUEST[‘code‘];//访问https://graph.qq.com/oauth2.0/token,传值APPID,APPKEY,并接收到Authorization Code
         $info = file_get_contents($url);//得到Access Token
//        print_r($info);die;  


        $params = array();
    parse_str($info, $params);//把接收到的字符串转化为数组
//print_r($params[‘access_token‘]);die;   $params[‘access_token‘]为接收到的token值
    $url1=‘https://graph.qq.com/oauth2.0/me?access_token=‘.$params[‘access_token‘];
$open=file_get_contents($url1);//访问https://graph.qq.com/oauth2.0/me?access_token  传值token  得到callback响应函数
    print_r($open);"<br/>";
    $str1 = substr($open,9,-3);//将得到的字符串截串为json格式数据
    
//print_r($str1);die;
    $arr= json_decode($str1, true);//解析json数据,true设置可以使json数据以数组格式打印出
    print_r($arr[‘openid‘]);echo "<br/>";     //$arr[‘openid‘]为openid
//die;
    $url2="https://graph.qq.com/user/get_user_info?access_token=".$params[‘access_token‘]."&oauth_consumer_key=101197633&openid=".$arr[‘openid‘];//访问https://graph.qq.com/user/get_user_info  传值token,APPID,openid
print_r($url2);    echo "<br/>";
    $data=file_get_contents($url2);//抓取用户信息数据  返回json格式数据
    print_r($data);
/*以下为入库*/
    //判断数据库是否存在
//    $db = new PDO("mysql:host=localhost;dbname=zhangrui","zhangrui", "123456");
    $aa = @mysql_connect(‘localhost‘,‘zhangrui‘,‘1234‘);
    $db = mysql_select_db(‘zhangrui‘);
    $selSql = "select userid, token, openid, type from user_oauth where token= ‘".$params[‘access_token‘] ."‘ and type = ‘qq‘";
//    $selRe = $db->query($selSql);
    $selRe = mysql_query($selSql);
    $num = mysql_num_rows($selRe);
//    $num = $selRe->rowCount();
    if($num>0)
    {
        echo "欢迎再次登陆!";exit;
    }

    
//    $addRe= $db->exec($addSql);
//    print_r($addRe);die;
//    $addRe= mysql_query($addSql);



    $addSql = "insert into user_oauth (token,openid,type) values (‘".$params[‘access_token‘]."‘,‘".$arr[‘openid‘]."‘,‘qq‘)";
    $addRe= mysql_query($addSql);
    if($addRe)
    {
        echo "登陆成功!";exit;
    }
    echo "登陆失败!";exit;

这样我们就可以实现简单的登录并且将用户信息简单的入库了。


二、新浪微博的第三方认证

我们也是首先要创建应用  http://open.weibo.com/  

技术分享创建认证成功后也是一样会返回一个     App Key 

,打开http://open.weibo.com/widget/   这个里边有各种应用微博的组件

技术分享我们可以根据需求去选择,应用即可



本文出自 “fiting” 博客,请务必保留此出处http://zrwx123.blog.51cto.com/10193196/1651083

Aouth认证

标签:第三方

原文地址:http://zrwx123.blog.51cto.com/10193196/1651083

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!