IT技术互动交流平台

mantis与uc登陆整合

作者:陈学虎  发布日期:2014-02-27 10:28:31
最近在公司系统的整合中,需要整合论坛,而且公司的系统中原本就存在数据库,在这样的条件下,选择了discuz论坛程序,会员管理只需要整合UCenter即可,下面简单的记录下过程:

1、在ucenter中建立相关应用,并保存,如下图:

2、打开下载UCenter_1.6.0_SC_UTF8文件夹中的advanced文件夹,这是和其它网站的接口文件,里面的document就是接口的API说明,examples文件夹就是一些使用例子,也可以根椐这些例子参照使用,uc_client是接口文件。
 
3、把examples文件夹中复制include文件夹和api文件夹到你网站根目录,include文件夹内包含一个文件叫db_mysql.class.php,这是连接数据库的类。
 
4、将uc_client文件夹整个复制到你网站根目录,uc_client之前说了是接口代码,现在根目录已经有api、include和uc_client三个文件夹了。
 
5、复制examples文件夹内的config.inc.php到你网站的根目录,这是配置UCenter的配置文件
 
6、
 
配置config.inc.php的各种参数
把mlecms的应用里“应用的 UCenter 配置信息”下文本框里的内容复制到 config.inc.php中,如下图:

 

 

照上面步骤配置好后,您的应用程序应该可以和ucenter通信成功了,如下图:

 

7、接下来我们就需要实现,在系统登陆的时候,首次需要同步注册uc,然后再discuz论坛激活账户,然后登陆的时候,自动登陆到论坛即可,因为为内部使用,同步退出,就没有他别要求,暂时先不写出来了,接下来的代码只处理登陆时候的 ,注册、同步登陆,信息修改:


 

/*
 * 同步登陆开始
 */
 //通过接口判断登录帐号的正确性,返回值为数组
 list($uid, $username, $password, $email) = uc_user_login($f_username, $f_password);
 setcookie('Example_auth', '', -86400);
 if($uid > 0) {
 //用户登陆成功,设置 Cookie,加密直接用 uc_authcode 函数,用户使用自己的函数
 setcookie('Example_auth', uc_authcode($uid."\t".$username, 'ENCODE'));
 //生成同步登录的代码
 $ucsynlogin = uc_user_synlogin($uid);
 echo '登录成功,请稍等,如果您的浏览器不能自动跳转,请点击!'.$ucsynlogin.'<br><br><br><a href="'.$_SERVER['PHP_SELF'].'">点击继续</a>';
 echo "<script>self.location='".$_SERVER['PHP_SELF']."';</script>";
 exit;
 } elseif($uid == -1) {
 $user_email = $f_username."@skyworth.com";
 $uuid = uc_user_register($f_username, $f_password, $user_email);
 if($uuid <= 0) {
 if($uuid == -1) {
 echo '用户名不合法';
 } elseif($uuid == -2) {
 echo '包含要允许注册的词语';
 } elseif($uuid == -3) {
 echo '用户名已经存在';
 } elseif($uuid == -4) {
 echo 'Email 格式有误';
 } elseif($uuid == -5) {
 echo 'Email 不允许注册';
 } elseif($uuid == -6) {
 echo '该 Email 已经被注册';
 } else {
 echo '未定义';
 }
 } else {
 echo '<p>我们已经为您自动的创建了新品质量中心论坛系统账户,您可以前往查询相关部门资料!</p>';
 echo '<p>现在您可以点击下面的连接前往质量信息系统了!!!</p>';
 echo '<p><font size="5" color="red">请立即激活您的账户,激活方法:</font></p>';
 echo "<p><a href='http://qims.skyworth.com/forum/data/attachment/forum/201401/qims-bbs-video.mp4'>视频教程</a></p>";
 echo "<p>1、进入:<a href='http://qims.skyworth.com/forum' target='_blank'>http://qims.skyworth.com/forum</a>;</p>";
 echo "<p>2、在顶部输入以下信息,点击登陆,然后点击激活,即可;</p>";
 echo "<p>3、账户:".$f_username."</p>";
 echo "<p>4、密码: 您的质量信息系统密码</p>";
 echo "<p>5、权限控制请联系系统管理员进行更新</p>";
 echo "<p>6、未激活的账户不能自动登陆论坛</p>";
 echo "<p>6、激活后,请全部退出后,重新登陆,使全部功能生效!</p>";
 echo '<br><a href="'.$_SERVER['PHP_SELF'].'">继续前往质量信息系统</a>';
 }
 //处理注册结束
 exit;//该处不能删除,必须这样跳转才能成功登陆
 } elseif($uid == -2) {
 echo '<br />';
 $ucresult = uc_user_edit($f_username, $_POST['oldpassword'], $f_password,
$_POST['emailnew']);
 echo "我们对您的帐号进行了优化,请重新登陆,使全部功能生效!";
 echo '<br><a href="'.$_SERVER['PHP_SELF'].'">继续前往质量信息系统</a>';
 if($ucresult == -1) {
 echo '旧密码不正确';
 } elseif($ucresult == -4) {
 echo 'Email 格式有误';
 } elseif($ucresult == -5) {
 echo 'Email 不允许注册';
 } elseif($ucresult == -6) {
 echo '该 Email 已经被注册';
 }
 } else {
 echo '未定义';
 }
 exit;//该处不能删除,必须这样跳转才能成功登陆
 /*
 * 同步登陆结束
 */


 

这样就实现了单向的同步登陆,如果需要更全面的,我将在以后有需求开发的时候,同步出教程。


Tag标签: mantis   uc  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规