现在的位置: 首页 > 综合 > 正文

整合UCenter+MediaWiki+Discuz实现单点登录

2017年12月26日 ⁄ 综合 ⁄ 共 2263字 ⁄ 字号 评论关闭

经过一段时间的参考和摸索,终于整合了UCenter、MediaWiki和Discuz,用来实现单点登录。

我整合的各个版本都是UTF-8编码的,如下:

UCenter 1.6.0 、mediawiki-1.18.0、Discuz X2

好了,把她们分别安装好,接着就可以整合了,哈哈!

一、修改ucenter

在ucenter中添加群组管理(即可以用作对mediawiki的访问权限管理,也可以用于用户管理)和部门管理(用于用户管理),第一步如果不熟悉uc的框架结构,很难找到修改的入口,具体的源代码我会在本文后面集中放出地址,添加之后如下图:

二、修改mediawiki

Auth_UC.zip 解压到/extensions目录下,

修改LocalSettings.php,在文件的末尾加入如下代码:

$wgGroupPermissions['*']['createaccount'] = false;//禁止注册

    // UC插件调用
    require_once './extensions/Auth_UC/Auth_UCenter.php';
	//*
    $wgSMF_WikiGroupID = '1,2,3';  //UCenter中群组对应的群组id号
    $wgSMF_WikiGroupName = 'user'; // Name of your group
    $wgSMF_UseWikiGroup = true; 
    $wgSMF_UseExtDatabase = true;
    $wgSMF_Version = 'X2'; // Discuz版本
    $wgSMF_MySQL_Host = 'localhost'; // UCenter MySQL Host Name. 
    $wgSMF_MySQL_Username = 'root'; // UCenter MySQL Username.
    $wgSMF_MySQL_Password = 'root'; // UCenter MySQL Password.
    $wgSMF_MySQL_Database = 'ucenter'; // UCenter MySQL Database Name.
    $wgSMF_Charset = 'utf8'; // UCenter MySQL Database Name. 
    $wgSMF_UserTB = 'uc_members'; // UCenter 用户表
	$wgSMF_UserextTB = 'uc_ext_members';//UCenter 扩展用户表
    $wgSMF_UserFieldTB = 'uc_memberfields'; // Name of your SMF user table. 
    $wgSMF_GroupsTB = 'uc_ext_group'; // UCenter 群组表
	//*/
    $wgAuth = new Auth_UCenter();
    // UC插件调用结束

配置/extensions/Auth_UC/config.inc.php,代码如下:

<?php
/******************************************/
define('UC_CONNECT', 'mysql');
define('UC_DBHOST', 'localhost');
define('UC_DBUSER', 'root');
define('UC_DBPW', 'root');
define('UC_DBNAME', 'ucenter');
define('UC_DBCHARSET', 'utf8');
define('UC_DBTABLEPRE', '`ucenter`.uc_');
define('UC_DBCONNECT', '0');
define('UC_KEY', '123456789');
define('UC_API', 'http://localhost/ucenter');
define('UC_CHARSET', 'utf-8');
define('UC_IP', '127.0.0.1');
define('UC_APPID', '2');
define('UC_PPP', '20');
/******************************************/

//用到的应用程序数据库连接参数
$dbhost = UC_DBHOST;			// 数据库服务器
$dbuser = UC_DBUSER;			// 数据库用户名
$dbpw = UC_DBPW;				// 数据库密码
$dbname = UC_DBNAME;			// 数据库名
$pconnect = UC_DBCONNECT;				// 数据库持久连接 0=关闭, 1=打开
$tablepre = UC_DBTABLEPRE;   		// 表名前缀, 同一数据库安装多个论坛请修改此处
$dbcharset = UC_CHARSET;			// MySQL 字符集, 可选 'gbk', 'big5', 'utf8', 'latin1', 留空为按照论坛字符集设定

配置uc与mw的通信

在应用管理中添加一个应用mediawiki,应用的主URL填入“http://localhost/mediawiki-1.18.0/extensions/Auth_UC”,这里的localhost可根据自己的情况酌情改变,通信密匙填入“123456789”,此处和上面的配置文件“define('UC_KEY',
'123456789');
”保持一致。如图:

 


其他的默认,保存后就会看见uc和mw通信成功,若不成功,好好检查配置文件。

三、修改Discuz

禁止DZ注册就OK。


好了,全部搞定。最终整合源代码为: UCenter+MediaWiki+Discuz X2.zip ,敬请享用本套餐,绝对开胃!

抱歉!评论已关闭.