最近在公司系统的整合中,需要整合论坛,而且公司的系统中原本就存在数据库,在这样的条件下,选择了discuz论坛程序,会员管理只需要整合UCenter即可,下面简单的记录下过程:
1、在ucenter中建立相关应用,并保存,如下图:文章源自陈学虎-https://chenxuehu.com/article/2014/02/1724.html
2、打开下载UCenter_1.6.0_SC_UTF8文件夹中的advanced文件夹,这是和其它网站的接口文件,里面的document就是接口的API说明,examples文件夹就是一些使用例子,也可以根椐这些例子参照使用,uc_client是接口文件。文章源自陈学虎-https://chenxuehu.com/article/2014/02/1724.html
3、把examples文件夹中复制include文件夹和api文件夹到你网站根目录,include文件夹内包含一个文件叫db_mysql.class.php,这是连接数据库的类。文章源自陈学虎-https://chenxuehu.com/article/2014/02/1724.html
4、将uc_client文件夹整个复制到你网站根目录,uc_client之前说了是接口代码,现在根目录已经有api、include和uc_client三个文件夹了。文章源自陈学虎-https://chenxuehu.com/article/2014/02/1724.html
5、复制examples文件夹内的config.inc.php到你网站的根目录,这是配置UCenter的配置文件文章源自陈学虎-https://chenxuehu.com/article/2014/02/1724.html
6、文章源自陈学虎-https://chenxuehu.com/article/2014/02/1724.html
配置config.inc.php的各种参数
把mlecms的应用里“应用的 UCenter 配置信息”下文本框里的内容复制到 config.inc.php中,如下图:文章源自陈学虎-https://chenxuehu.com/article/2014/02/1724.html
照上面步骤配置好后,您的应用程序应该可以和ucenter通信成功了,如下图:文章源自陈学虎-https://chenxuehu.com/article/2014/02/1724.html
7、接下来我们就需要实现,在系统登陆的时候,首次需要同步注册uc,然后再discuz论坛激活账户,然后登陆的时候,自动登陆到论坛即可,因为为内部使用,同步退出,就没有他别要求,暂时先不写出来了,接下来的代码只处理登陆时候的 ,注册、同步登陆,信息修改:文章源自陈学虎-https://chenxuehu.com/article/2014/02/1724.html
/* * 同步登陆开始 */ //通过接口判断登录帐号的正确性,返回值为数组 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;//该处不能删除,必须这样跳转才能成功登陆 /* * 同步登陆结束 */
文章源自陈学虎-https://chenxuehu.com/article/2014/02/1724.html
这样就实现了单向的同步登陆,如果需要更全面的,我将在以后有需求开发的时候,同步出教程。
评论