mantis与uc登陆整合

  • A+
所属分类:PHP开发
摘要

最近在公司系统的整合中,需要整合论坛,而且公司的系统中原本就存在数据库,在这样的条件下,选择了discuz论坛程序,会员管理只需要整合UCenter即可,下面简单的记录下过程:

最近在公司系统的整合中,需要整合论坛,而且公司的系统中原本就存在数据库,在这样的条件下,选择了discuz论坛程序,会员管理只需要整合UCenter即可,下面简单的记录下过程:

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

mantis与uc登陆整合

建立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中,如下图:

mantis与uc登陆整合

UCenter 配置信息

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

mantis与uc登陆整合

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;//该处不能删除,必须这样跳转才能成功登陆
/*
* 同步登陆结束
*/

 

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

  • 我的微信
  • 加我请备注缘由
  • weinxin
  • 我的微信公众号
  • 轻松随便关注
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

关闭震动