php实现QQ、新浪微博等第三方登录demo代码_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > php实现QQ、新浪微博等第三方登录demo代码

php实现QQ、新浪微博等第三方登录demo代码

 2017/3/1 5:32:21  erdangjiade.com  程序员俱乐部  我要评论(0)
  • 摘要:由于客户要求必须在网站上加个第三方登陆功能。以前写Java也做过,用的一些比较简单的方法,但是缺点也很明显:精确统计和服务器、数据库压力之间要做出平衡。因为项目是用的PHP写的,所以必须要重新写一个;本文以二当家的登录和示例演示了腾讯qq、新浪微博和人人网的第三方账号绑定。演示效果你也可以参考一下这个:php实现QQ、新浪微博等第三方登录demo代码QQ登陆效果图:1、首先你要到目前支持的平台里面去申请开放的APPID和Secret目前可用登录平台为:目前可用登录平台为:腾讯QQ,腾讯微博
  • 标签:PHP 实现 代码 新浪 新浪微博 微博 QQ

由于客户要求必须在网站上加个第三方登陆功能。以前写Java也做过,用的一些比较简单的方法,但是缺点也很明显:精确统计和服务器、数据库压力之间要做出平衡。因为项目是用的PHP写的,所以必须要重新写一个;本文以二当家的登录和示例演示了腾讯qq、新浪微博人人网的第三方账号绑定。

演示效果你也可以参考一下这个:php实现QQ、新浪微博等第三方登录demo代码
QQ登陆效果图:


1、首先你要到目前支持的平台里面去申请开放的APPID和Secret

目前可用登录平台为:目前可用登录平台为:腾讯QQ,腾讯微博,新浪微博,网易微博,人人网,360,豆瓣,Github,Google,MSN,点点,淘宝网,百度,开心网,搜狐。
包含的文件

class="php" name="code">ThinkSDK/ThinkOauth.class.php //SDK基类,主要用于Oauth的认证,所有平台的SDK均需要继承此类 
ThinkSDK/sdk/DiandianSDK.class.php //(点点SDK) 
ThinkSDK/sdk/DoubanSDK.class.php //(豆瓣SDK) 
ThinkSDK/sdk/GithubSDK.class.php //(Github SDK) 
ThinkSDK/sdk/GoogleSDK.class.php //(Google SDK) 
ThinkSDK/sdk/MsnSDK.class.php //(MSN SDK) 
ThinkSDK/sdk/QqSDK.class.php //(腾讯QQ SDK) 
ThinkSDK/sdk/RenrenSDK.class.php //(人人网SDK) 
ThinkSDK/sdk/SinaSDK.class.php //(新浪微博SDK) 
ThinkSDK/sdk/T163SDK.class.php //(网易微博SDK) 
ThinkSDK/sdk/TaobaoSDK.class.php //(淘宝网SDK) 
ThinkSDK/sdk/TencentSDK.class.php //(腾讯微博SDK) 
ThinkSDK/sdk/X360SDK.class.php //(360 SDK) 
ThinkSDK/sdk/BaiduSDK.class.php (百度SDK)     
ThinkSDK/sdk/KaixinSDK.class.php (开心网SDK)     
ThinkSDK/sdk/SohuSDK.class.php (搜狐SDK)


2、返回地址

$SITE_URL = "http://www.erdangjiade.com/"; 
define('URL_CALLBACK', "" . $SITE_URL . "Index/callback?type=");


3、配置格式

return array( 
    //腾讯QQ登录配置 
    'THINK_SDK_QQ' => array( 
        'APP_KEY' => '101205983', //应用注册成功后分配的 APP ID 
        'APP_SECRET' => '9380197af5efd5c47bc561323047ccec', //应用注册成功后分配的KEY 
        'CALLBACK' => URL_CALLBACK . 'qq', 
    ), 
    //新浪微博配置 
    'THINK_SDK_SINA' => array( 
        'APP_KEY' => '120967331', //应用注册成功后分配的 APP ID 
        'APP_SECRET' => '8aa15f65593eaf9e787baec45a801296', //应用注册成功后分配的KEY 
        'CALLBACK' => URL_CALLBACK . 'sina', 
    ), 
    //人人网配置 
    'THINK_SDK_RENREN' => array( 
        'APP_KEY' => '', //应用注册成功后分配的 APP ID 
        'APP_SECRET' => '', //应用注册成功后分配的KEY 
        'CALLBACK' => URL_CALLBACK . 'renren', 
    ) 
);


4、接入登录方法
添加ThinkPHP扩展,将整个ThinkSDK目录放入到ThinkPHP的扩展目录下~Extend/Library/ORG/~。

添加SDK配置,按以上配置格式在项目配置中添加对应的SDK配置。(可参考DEMO中的配置文件)

跳转到授权页面(可参考DEMO中的Index/login方法)

import("ORG.ThinkSDK.ThinkOauth")//导入SDK基类 
$sdk=ThinkOauth::getInstance($type)//获取SDK实例 
redirect($sdk->getRequestCodeURL())//跳转到授权页面


5、表结构我也发出来吧 数据库表:sucai_user(注:我用的是Mysql)

CREATE TABLE IF NOT EXISTS `sucai_user` ( 
  `id` int(11) NOT NULL AUTO_INCREMENT, 
  `name` varchar(50) NOT NULL, 
  `nickname` varchar(30) DEFAULT NULL, 
  `pwd` varchar(50) NOT NULL, 
  `email` varchar(30) DEFAULT NULL, 
  `avatar` varchar(200) DEFAULT '', 
  `logintime` int(10) NOT NULL, 
  `loginip` varchar(30) DEFAULT NULL, 
  `qq` varchar(250) DEFAULT NULL, 
  `sina` varchar(250) DEFAULT NULL, 
  `renren` varchar(250) DEFAULT NULL, 
  PRIMARY KEY (`id`) 
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;


6、写在最后:
qq第三方申请地址:QQ互联
QQ互联申请应用注意点:
qq登录按钮必须放在首页头部,否则不通过
在绑定页面必须显示昵称,演示DEMO绑定模板bind.html里面已加入nickname

提示:openid作为用户的身份识别的唯一id,必须保存在用户表里面,作为下一次识别。access_token也可以保存在用户表user里面,可以作相关API处理,比如发送微博。qq互联测试地址:http://connect.qq.com/sdk/webtools/

当然这只是记录我工作中的一些学习心得,有不正确的地方,还请大神们指正!

?

发表评论
用户名: 匿名