您的位置:首页 > 其它

Ucenter 整合第三方应用

2013-09-07 12:02 477 查看
首先说明,这篇文档支持ucenter1.50版本的整合。

第一步,去下载ucenter1.50,不要下官方的,里面没有提供example这文件夹。

正常下载下来,应包含,advanced,readme,upload,utilities这四个文件夹。

在你网站新建一个uncenter目录,把这四个文件全部拷贝进去,再安装,否则会

出问题,安装uncenter,直接在地址栏输入http://站点地址/uncenter/upload/install

根据提示安装即可。

第二步,把/advanced/example/里面的所有文件拷贝到你网站的跟目录下面,再

然后,去/advanced 里去拷贝一个uc_client文件夹,到你网站的跟目录下面。

第三步,我们举例你现在有A站点,B站点。都拷贝好了第二步里面的东西。

接下来,去修改/code/login_nodb.php 里面的 设置setcookie的Example_auth

改为你自己的名称,例如A站可以设置为example_auth_a,B站可以设置为example_auth_b

同时也要修改/code/loginout.php 里面的setcookie的Example_auth为你刚刚设置的值。

第四步,修改/api/uc.php里面的function synlogin如下:
function synlogin($get, $post) {
		$uid = $get['uid'];
		$username = $get['username'];
		if(!API_SYNLOGIN) {
			return API_RETURN_FORBIDDEN;
		}
		
//		require_once $this->appdir.'./forumdata/cache/cache_settings.php';
//
//		$cookietime = 2592000;
//		$discuz_auth_key = md5($_DCACHE['settings']['authkey'].$_SERVER['HTTP_USER_AGENT']);
//		header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM N*** OTC NOI DSP COR"');
//		$uid = intval($uid);
//		$query = $this->db->query("SELECT username, uid, password, secques FROM ".$this->tablepre."members WHERE uid='$uid'");
//		if($member = $this->db->fetch_array($query)) {
//			_setcookie('sid', '', -86400 * 365);
//			_setcookie('cookietime', $cookietime, 31536000);
//			_setcookie('auth', _authcode("$member[password]\t$member[secques]\t$member[uid]", 'ENCODE', $discuz_auth_key), $cookietime);
//		} else {
//			_setcookie('cookietime', $cookietime, 31536000);
//			_setcookie('loginuser', $username, $cookietime);
//			_setcookie('activationauth', _authcode($username, 'ENCODE', $discuz_auth_key), $cookietime);
//		}
//		原来的代码,实际上是discuz的登录cookies
		
		header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM N*** OTC NOI DSP COR"');
		_setcookie('example_auth_a', _authcode($uid."\t".$username, 'ENCODE',UC_KEY), 86500);
	}
接着修改 function synlogout 如下:

function synlogout($get, $post) {
		if(!API_SYNLOGOUT) {
			return API_RETURN_FORBIDDEN;
		}

		header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM N*** OTC NOI DSP COR"');	
//		_setcookie('auth', '', -86400 * 365);
//		_setcookie('sid', '', -86400 * 365);
//		_setcookie('loginuser', '', -86400 * 365);
//		_setcookie('activationauth', '', -86400 * 365);	
		_setcookie('example_auth_a', '', -86400 * 365);
	}
接着修改 function _setcookie如下:

function _setcookie($var, $value, $life = 0, $prefix = 0) {
	global $cookiepre, $cookiedomain, $cookiepath, $timestamp, $_SERVER;
	//setcookie(($prefix ? $cookiepre : '').$var, $value,
	//	$life ? $timestamp + $life : 0, $cookiepath,
	//	$cookiedomain, $_SERVER['SERVER_PORT'] == 443 ? 1 : 0);
	setcookie(($prefix ? $cookiepre : '').$var, $value,
		$life ? $timestamp + $life : 0, '/',
		"", $_SERVER['SERVER_PORT'] == 443 ? 1 : 0);
}


两个站点都做这样的操作,注意_setcookie要设置为相应的名称。

此外去ucenter后台管理中心,添加应用管理,很简单,就不再阐述了。

附上一个我的config.inc.php配置

define('UC_CONNECT', 'mysql');
define('UC_DBHOST', 'localhost');
define('UC_DBUSER', 'root');
define('UC_DBPW', '');
define('UC_DBNAME', 'ucenter');
define('UC_DBCHARSET', 'utf8');
define('UC_DBTABLEPRE', '`ucenter`.uc_');
define('UC_DBCONNECT', '0');
define('UC_KEY', 'example2');
define('UC_API', 'http://a.me/ucenter/upload');
define('UC_CHARSET', 'utf-8');
define('UC_IP', '127.0.0.1');
define('UC_APPID', '2');
define('UC_PPP', '20');

//ucexample_2.php 用到的应用程序数据库连接参数
$database = 'mysql';
$dbhost = 'localhost';			// 数据库服务器
$dbuser = 'root';			// 数据库用户名
$dbpw = '';				// 数据库密码
$dbname = 'ucenter';			// 数据库名
$pconnect = 0;				// 数据库持久连接 0=关闭, 1=打开
$tablepre = 'example_';   		// 表名前缀, 同一数据库安装多个论坛请修改此处
$dbcharset = 'utf8';			// MySQL 字符集, 可选 'gbk', 'big5', 'utf8', 'latin1', 留空为按照论坛字符集设定


好啦,不明白的,可以加我QQ:1986548161
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: