首先说明,这篇文档支持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 NAV 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 NAV 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 NAV 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