codeigniter整合discuz之ucenter用户同步

2013-02-22 23:39:09来源:光源之眼作者:

UCenter 是国内Discuz公司开发的一个用户管理中心,应该说现在是腾讯公司的。早年被腾讯收购。现在国内对于UCenter使用还是非常多的。只要是国内使用Discuz产品的,基本没有不适用UCenter的。

UCenter 是国内Discuz公司开发的一个用户管理中心,应该说现在是腾讯公司的。早年被腾讯收购。现在国内对于UCenter使用还是非常多的。只要是国内使用Discuz产品的,基本没有不适用UCenter的。

今天研究了下,如何与UCenter实现通信,并且用户同步.

首先下载UCenter安装包 :去官网下载最新版本的包 http://www.comsenz.com/downloads/install/ucenter#down_open

解压后会有4个文件夹

  • advanced
  • readme
  • upload
  • utilities

upload文件夹,顾名思义,需要我们上传,其实这个就是用户中心的安装包。自己安装吧。直接访问首页, 按照提示就能安装了。这个很简单,不用说。

然后访问advanced文件夹,可以看到3个文件夹。我们需要的是uc_client 和examples目录下的api文件夹,将uc_client和examples目录下的api文件夹 拷贝至codeigniter 根目录下.

\

 

\

 

\

填好需要填写的信息后,

然后将滚动条拉到也蛮底部.

将 第三张图片中,红色框框里面的代码复制到api目录下的uc.php文件中.

然后将30行和79行的代码替换成

<?php
if(!defined('IN_UC')) {
   error_reporting(0);
   set_magic_quotes_runtime(0); 
   defined('MAGIC_QUOTES_GPC') || define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());
   // require_once DISCUZ_ROOT.'./config.inc.php'; 
   $_DCACHE = $get = $post = array(); 
   $code = @$_GET['code'];
   parse_str(_authcode($code, 'DECODE', UC_KEY), $get);
   if(MAGIC_QUOTES_GPC) {
     $get = _stripslashes($get);
   } 
   $timestamp = time();
   if($timestamp - $get['time'] > 3600) {
     exit('Authracation has expiried');
   }
   if(empty($get)) {
     exit('Invalid Request');
   }
   $action = $get['action']; 
   require_once DISCUZ_ROOT.'./uc_client/lib/xml.class.php';
   $post = xml_unserialize(file_get_contents('php://input')); 
   if(in_array($get['action'], array('test', 'deleteuser', 'renameuser', 'gettag', 'synlogin', 'synlogout', 'updatepw', 'updatebadwords', 'updatehosts', 'updateapps', 'updateclient', 'updatecredit', 'getcredit', 'getcreditsettings', 'updatecreditsettings', 'addfeed'))) {
     $uc_note = new uc_note();
     echo $uc_note->$get['action']($get, $post); exit();
   } else {
     exit(API_RETURN_FAILED);
   } 
   //note include 通知方式 } else { exit(); }
?>

\

刷新下用户中心的页面.通信成功了~!
 

赞助商链接: