仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 683|回复: 6
打印 上一主题 下一主题

[学习教程] PHP教程之phpcms V9完成QQ上岸OAuth2.0

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:14:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
因为函数实在是太多了,慢慢的你就会知道,知道有这个函数就可以。phpcmsV9利用的QQ上岸仍然是OAuth1.0,但如今腾讯已不考核利用OAuth1.0的网站了。这关于利用pc的站长来说是一个非常伟大的坑。经由对phpcms论坛的一名同砚做的插件举行修正,如今完善完成QQ上岸,暂无发明bug。
完成步骤:
①翻开phpcmsmodulesmemberindex.php文件,把上面的代码找个中央塞出来(能够间接在pc默许的QQ上岸上面)。

  • //QQ上岸oAuth2.0

  • ublicfunctionpublic_qq_login2(){

  • $appid=pc_base::load_config(system,qq_appid);

  • $appkey=pc_base::load_config(system,qq_appkey);

  • $callback=pc_base::load_config(system,qq_callback);

  • pc_base::load_app_class(qqOAuth2,,0);

  • $info=newqqOAuth2($appid,$appkey,$callback);

  • $this->_session_start();

  • if(!isset($_GET[code])){

  • $info->redirect_to_login();

  • }else{

  • $code=$_GET[code];

  • $_SESSION[openid]=$info->get_openid($code);//调取QQopenid值

  • if(!emptyempty($_SESSION[openid])){

  • $r=$this->db->get_one(array(connectid=>$_SESSION[openid],from=>qq));

  • if(!emptyempty($r)){

  • //QQ已存在于数据库,则间接转向上岸操纵

  • $password=$r[password];

  • $this->_init_phpsso();

  • $synloginstr=$this->client->ps_member_synlogin($r[phpssouid]);

  • $userid=$r[userid];

  • $groupid=$r[groupid];

  • $username=$r[username];

  • $nickname=emptyempty($r[nickname])?$username:$r[nickname];

  • $this->db->update(array(lastip=>ip(),lastdate=>SYS_TIME,nickname=>$me[name]),array(userid=>$userid));

  • if(!$cookietime)$get_cookietime=param::get_cookie(cookietime);

  • $_cookietime=$cookietime?intval($cookietime):($get_cookietime?$get_cookietime:0);

  • $cookietime=$_cookietime?TIME+$_cookietime:0;

  • $phpcms_auth_key=md5(pc_base::load_config(system,auth_key).$this->http_user_agent);

  • $phpcms_auth=sys_auth($userid."        ".$password,ENCODE,$phpcms_auth_key);

  • param::set_cookie(auth,$phpcms_auth,$cookietime);

  • param::set_cookie(_userid,$userid,$cookietime);

  • param::set_cookie(_username,$username,$cookietime);

  • param::set_cookie(_groupid,$groupid,$cookietime);

  • param::set_cookie(cookietime,$_cookietime,$cookietime);

  • param::set_cookie(_nickname,$nickname,$cookietime);

  • $forward=isset($_GET[forward])&&!emptyempty($_GET[forward])?$_GET[forward]:index.php?m=member&c=index;

  • showmessage(L(login_success).$synloginstr,$forward);

  • }else{

  • //未存在于数据库中,跳往完美材料页面。页面预置用户名(QQ前往是UTF8编码,若有必要举行转码)

  • $user=$info->get_user_info();

  • $_SESSION[connectid]=$_SESSION[openid];

  • $_SESSION[from]=qq;

  • if(CHARSET!=utf-8){//转编码

  • $connect_username=iconv(utf-8,CHARSET,$user[nickname]);

  • }

  • includetemplate(member,connect);

  • }

  • }

  • }

  • }

②把附件的qqOAuth2.class.php文件放在phpcmsmodulesmemberclasses文件夹里。
③在背景找到connect设置,把QQ号码上岸的回调地点改成http://php100.com/index.php?m=member&c=index&a=public_qq_login2(把我的域名换成你本人的)
④填好AppID和Appkey,然后更新缓存。
⑤上岸phpmyadmin,找到v9_member这张表的connectid字段(大概自界说的字段),把范例改成“char(255)”,由于phpcms默许是15位的。以是我们间接完全修正成255位,这个不论是腾讯的别的第三方网站帐号(比方淘宝、付出宝、百度、360等别的第三方帐号),都能够完成数据绑定。(此条增加于7月27号,由网友liuyang814发邮件提示)
前期会把新浪微博及腾讯微博的代码放下去。phpcms的周边代码太少了,网上找都找不到。
在一个团队之中或者说是在一个公司的工作岗位上,需要注重团队之间的交流合作;在学习或工作上都要端正自己的态度,要以认真的态度来对每件事,这样才能让自己更快的投入、更快的学习,而不至于浪费自己的时间。
只想知道 该用户已被删除
沙发
发表于 2015-1-19 05:54:46 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
飘飘悠悠 该用户已被删除
板凳
发表于 2015-2-8 17:51:45 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
不帅 该用户已被删除
地板
发表于 2015-2-25 21:59:54 | 只看该作者
实践是检验自己会不会的真理。
深爱那片海 该用户已被删除
5#
 楼主| 发表于 2015-3-8 07:43:57 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
再现理想 该用户已被删除
6#
发表于 2015-3-15 22:05:11 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
灵魂腐蚀 该用户已被删除
7#
发表于 2015-3-22 05:45:23 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-11 04:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表