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如下:
两个站点都做这样的操作,注意_setcookie要设置为相应的名称。
此外去ucenter后台管理中心,添加应用管理,很简单,就不再阐述了。
附上一个我的config.inc.php配置
好啦,不明白的,可以加我QQ:1986548161
第一步,去下载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
相关文章推荐
- ucenter整合第三方应用,实现单点登录,用户信息统一管理
- 第三方应用整合ucenter
- 第三方应用(网站)整合UCenter
- webpack多页应用架构 - 整合第三方工具
- 使用ucenter在第三方应用中实现同步注册与登录
- UCenter的应用整合与单点登录分析
- 关于整合ucenter 时无法在uc.php中写入第三方cookie的解决办法
- ucenter整合记事狗微博与论坛 cms 等应用
- Ucenter 第三方应用 同步化 关键函数
- ucenter整合第三方网站同步登录
- 详解ucenter原理及第三方应用程序整合思路、方法
- asp.net与Discuz-UCenter整合(3):UCenter与应用同步
- [申精]详解ucenter原理及第三方应用程序整合思路、方法
- UCenter的应用整合与单点登录分析
- UCenter的应用整合与单点登录分析
- Ucenter原理及第三方应用程序整合思路、方法简述
- UCer 整合第三方应用 以及Wecenter
- asp.net与Discuz-UCenter整合(1):应用通信
- 使用ucenter在第三方应用中实现同…
- 使用ucenter在第三方应用中实现同步注册与登录