qq互联 网站接入三方账号
来源:互联网 发布:php世界上最好的语言梗 编辑:程序博客网 时间:2024/04/27 16:12
在腾讯qq互联提交网站,获取appid和appkey。
下载php sdk,然后按照说明安装。。
1.登录入口:
方式(2)
入口文件:(/third/index 运行)
2.获取Authorization Code
这样基本实现了qq三方登录,但是这只完成了api中最重要的步骤,实现网站的三方登录我们还要继续往下。
下载php sdk,然后按照说明安装。。
1.登录入口:
方式(1)
<a target="_blank" href="/third/index"> <img src="/static/image/Connect_logo_7.png"></img></a>
方式(2)
<script type="text/javascript">function tologin(){var A=window.open(baseurl+"/third/index","TencentLogin","width=450,height=320,menubar=0,scrollbars=1,resizable=1,status=1,titlebar=0,toolbar=0,location=1");}</script><a> <img src="/static/image/Connect_logo_7.png" onclick="tologin()"/> </a>
入口文件:(/third/index 运行)
//移动apirequire_once Yii::getPathOfAlias('recep')."/extensions/qqconnect/API/qqConnectAPI.php";//api$qc = new QC();$qc->qq_login();
2.获取Authorization Code
点击qq登录,回传url,qq说明文档
主要值client_id (应用的appid),redirect_uri(回调的地址)申请应用的时候提交,state(防CSRF攻击)md5的随机码,返回的时候带回,存储在seession或者cache。
yii框架的分布式服务器,session存储在cache的,可以修改api文件,api下的文件$_SESSION['QC_userData']改为Yii::app()->session['QC_userData']
3.通过Authorization Code获取Access Token和openid
回调的url将带着code,third/qqthirdparty?code=9A5F************************06AF&state=test
third/qqthirdparty代码
$qqthirdparty=YiiBase::getPathOfAlias('application.extensions.qqconnect');require $qqthirdparty.'/API/qqConnectAPI.php';$qc = new QC();$access_token=$qc->qq_callback();//获取Access Token$openid=$qc->get_openid();//通过Access Token获取openid$qc = new QC($access_token, $openid);//一定要记得再声明一次QC,并赋值$access_token和$openid,防止数据丢失。$arr = $qc->get_user_info(); //获取qq用户基本信息
这样基本实现了qq三方登录,但是这只完成了api中最重要的步骤,实现网站的三方登录我们还要继续往下。
appid作为用户的唯一的标示,可以存储在数据库中,跟自己网站的用户id对应
third/qqthirdparty代码
$user=UserService::base()->thirdInfo($openid);if($user){//登录}else{ //将openid和arr用户数据存cache,cache key=md5($openid),md5($openid) 存cookie $id_key=md5($openid);$qq_info=array('openid'=>$openid,'arr'=>$arr);Yii::app()->cache->set('system_open_'.$id_key,$qq_info);$cookie = new CHttpCookie('openid',$id_key);$cookie->expire = time()+60*60*24*30;Yii::app()->request->cookies['openid']=$cookie;$this->redirect(baseCreatUrl($this->createUrl('third/plat')));}third/plat注册qq用户提供qq用户注册的功能(填写邮箱账号、密码),因为qq不提供用户的邮箱账号,所以网站注册需要邮箱的,需跳转到单独的页面提交。
实现qq用户注册
third/doqqregister
/*get userinfo*/$cookie = Yii::app()->request->getCookies();if(isset($cookie['openid'])){ $openid_key= $cookie['openid']->value;$qq_info=Yii::app()->cache->get("system_open_".$openid_key);//cache中获取openid和用户数据$openid=$qq_info['openid'];//注册用户//写入openid$insert=array('user_id'=>$user['id'],'open_id'=>$openid,'api'=>'tencent');$thirdAr=new UserThird();$thirdAr->attributes=$insert;}到此实现了qq登录的功能
0 0
- qq互联 网站接入三方账号
- 实现QQ第三方登录、网站接入
- 网站接入QQ登录
- 网站接入QQ登录
- QQ登录网站接入
- web接入QQ第三方登录
- QQ三方登录
- QQ三方登录
- 第三方QQ账号登录的实现
- android QQ账号登陆第三方应用
- 网站接入QQ登录(QQ互联)php版的流程
- 第三方网站QQ登录
- paip.网站接入QQ登录总结
- QQ于WEB网站接入流程详细
- js-QQ三方登陆
- QQ登录-第三方SDK的接入总结
- QQ登录第三方接口研究(2)-接入规范
- 【Android】第三方QQ账号登录的实现
- C++初学者:类及初始化
- maven创建web工程找不到Spring配置文件
- Micron sensor 驱动与调试小结
- Activiti 学习资源
- UML类图几种关系的总结
- qq互联 网站接入三方账号
- 使用Jmeter对Oracle进行压力测试
- poj 2175 Evacuation Plan(最小费用流+消圈)
- android 调用设置页面开启gps
- 数据库基础知识讲解您必须要了解的几点知识体系
- linux网络协议栈(四)链路层 (3)邻居子系统&ARP
- Linux从程序到进程
- stm32f103 flash读写函数
- Android 网络访问 线程注意事项