codeigniter整合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 根目录下.

codeigniter整合discuz之ucenter用户同步_第1张图片

 

codeigniter整合discuz之ucenter用户同步_第2张图片

 

codeigniter整合discuz之ucenter用户同步_第3张图片

填好需要填写的信息后,

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

将 第三张图片中,红色框框里面的代码复制到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(); }
?>

codeigniter整合discuz之ucenter用户同步_第4张图片

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

你可能感兴趣的:(codeigniter整合discuz之ucenter用户同步)