ecshop discuz 与帝国cms系统单点登录的整合

来源:互联网 发布:蓝鸥unity3d培训多少钱 编辑:程序博客网 时间:2024/05/01 12:29

        boss要我把公司目前用的ecshop discuz论坛和帝国cms系统的用户信息整合到一起,实现在其中一个系统登陆和注销后,在其它几个系统也同步登录和注销。我上网查了查,这就是所谓的sso单点登录啊-。-。

        想要自己实现应该还是很麻烦的,boss一开始问我你查查资料,看多久能弄出来,我找了找相关资料,发现这三个系统都实现了和UCenter系统的整合,于是单点登录的效果便很好实现。

        以下步骤大部分都是从网络上找到的,不过自己实际操作中遇到了一些问题,也零碎的记录在其中做备忘。


一、所需工具

Ecshop和UCenter的整合不需要其它插件,帝国cms与UCenter的整合需要从帝国cms下载对应的EcmsToUCenter接口插件,http://www.phome.net/download/有下,我在包里有放utf-8版本的该插件。

二、帝国cms与UCenter整合

1.打开EcmsToUCenter插件压缩包,将其中upload文件夹中的内容复制进帝国系统根目录下的e文件夹中,注意复制的不是uplaod文件夹而是其中的内容。

2.登录UCenter管理后台(discuz论坛后台可以找到登陆口)。选择添加新应用:

 

        图中“应用的url“输入的应该是帝国cms系统在公网的地址,那个localhost应该是帝国系统的域名或者公网ip,不应该输入localhost。我在随后遇到了无法同步登录登出的问题,后来查到是因为3个系统进行通信时,我有部分地址写的是ip,有部分写的是域名,似乎对通信造成了影响,从而导致无法正常通信的问题。

“通信密钥”在帝国cms接口的配置文件中也要写,两个地方要输入相同的字符串,否则不能通信。

3.之后我们会在图3中看到说通信失败的信息,因为我们还没有对帝国系统的插件进行配置。

接下来要对帝国插件进行配置:

修改帝国CMS目录下的e/config.inc.php文件配置:(UTF-8版要用dreamweavereditplus修改,用记事本会将文件转为gbk 

连接UCenter的方式
UC_CONNECT:默认为mysql,一般不用修改。如果设置mysql链接方式,Ucenter的数据库帐号必须有权限操作帝国CMS的数据库。

UCenter数据库参数配置(如果不清楚 可对比ucenter的配置文件)
UC_DBHOST: UCenter数据库主机 
UC_DBUSER: UCenter数据库用户名 
UC_DBPW: UCenter数据库密码 
UC_DBNAME: UCenter数据库名称 
UC_DBCHARSET: UCenter数据库字符集,默认即可 
UC_DBTABLEPRE: UCenter 数据库表前缀(格式:数据库.前缀,如:database.uc_)一定要记得加数据库。

注:目前UCenter的数据库和论坛数据库的名字相同,数据库的表前缀为pre_ucenter_。

UCenter通信相关参数(要同Ucenter增加的帝国CMS应用设置项保持一致。)
UC_KEY: 通信密钥,打开ucenter把帝国CMS应用里的通信密钥和此密钥统一。 
UC_API: 设置Ucenter的安装地址,如:http://www.phome.net/ucenter 
UC_CHARSET: UCenter的字符集,默认即可 
UC_IP: UCenter的 IP,默认即可 
UC_APPID: 当前应用的ID,打开ucenter 看应用管理中帝国CMS接口前的id数字。 

同步登录Cookie设置
一般不用设置,默认即可。

 

 

Ps如果原帝国CMS有会员数据,则可以按下面步骤将会员导入Ucenter(我没有进行过这个步骤,摘自网络。。):

第 4 步:将帝国CMS会员导入Ucenter 说明:
(1)、如果你的帝国CMS使用了万能会员接口整合了其他程序,即整合其它会员系统,可跳过此步骤。
(2)、如果本身没有会员数据也可跳过此步骤。

导入步骤: 
(1)、将接口包的“tool”目录里的update文件夹复制到帝国CMS的“e”目录里; 
(2)、运行e/update/index.php文件,进行会员数据导入操作; 
(3)、导入完毕后,将e/update目录里的文件删除。 

第 5 步:清空帝国CMS会员表(phome_enewsmember)数据,以免同Ucenter数据冲突
如果本身没有会员数据可跳过此步骤。

登陆帝国CMS后台 > “系统设置” > “执行SQL语句”,运行下面SQL: 
TRUNCATE `[!db.pre!]enewsmember`;
TRUNCATE `[!db.pre!]enewsmemberadd`;

 

如果以上步骤正确的话,以后每个用户第一次登陆帝国和论坛的时候会需要分别登录,之后就可以同步登录注销。可以打开这两个系统用个账号登录登出试下。注意的是在本机实验的时候系统http地址请不要打localhost或者回环ip,似乎cookie会有问题,请输入你在UCenter中输入的“应用的URL”。


三、ecshop和UCenter整合

1.请进入论坛根目录,将其中的uc_client文件夹整个复制到ecshop系统的根目录中:

2.请登陆ecshop的后台,点击会员管理栏目的会员整合,在页面中的UCenter,点击它的安装按钮。然后输入UCenterURL和创始人密码。UCenterurlhttp://论坛域名/uc_server,创始人密码应该是论坛admin账号的密码。之后在UCenter中德应用管理里应该能看到ecshop应用并且显示通信成功。

 

四、结尾

至此三系统应该都整合完毕,在UCenter中应该能看到下图的画面:


 三系统通信成功


在浏览器中输入如图5的“应用的url”进入网站后,除了第一次登陆外,以后该账号应该能够同步登录登出。

 

大体就是这样,可能会忘了啥步骤,出错再通知咱……

                                                   2012/8/14


原创粉丝点击