|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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的周边代码太少了,网上找都找不到。
在一个团队之中或者说是在一个公司的工作岗位上,需要注重团队之间的交流合作;在学习或工作上都要端正自己的态度,要以认真的态度来对每件事,这样才能让自己更快的投入、更快的学习,而不至于浪费自己的时间。 |
|