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版要用dreamweaver或editplus修改,用记事本会将文件转为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 说明: |
如果以上步骤正确的话,以后每个用户第一次登陆帝国和论坛的时候会需要分别登录,之后就可以同步登录注销。可以打开这两个系统用个账号登录登出试下。注意的是在本机实验的时候系统http地址请不要打localhost或者回环ip,似乎cookie会有问题,请输入你在UCenter中输入的“应用的URL”。
三、ecshop和UCenter整合
1.请进入论坛根目录,将其中的uc_client文件夹整个复制到ecshop系统的根目录中:2.请登陆ecshop的后台,点击会员管理栏目的会员整合,在页面中的UCenter,点击它的安装按钮。然后输入UCenter的URL和创始人密码。UCenter的url是http://论坛域名/uc_server,创始人密码应该是论坛admin账号的密码。之后在UCenter中德应用管理里应该能看到ecshop应用并且显示通信成功。
四、结尾
至此三系统应该都整合完毕,在UCenter中应该能看到下图的画面:
图 三系统通信成功
在浏览器中输入如图5的“应用的url”进入网站后,除了第一次登陆外,以后该账号应该能够同步登录登出。
大体就是这样,可能会忘了啥步骤,出错再通知咱……
2012/8/14