建站经验 experience
当前位置:首页 > 网站建设专题 > 建站经验
网站会员整合ucenter 实现多站点同步登录方法
发布日期:2011-04-29 阅读次数:1144 字体大小:

之前简单的写过一篇的用户注册整合ucenter的文章,因为写的很简洁,很多童鞋都看的不是很明白,也收到了很多童鞋的问题邮件。前几天因为公司的几个 网站需要做同步登录功能,因此就用到了ucenter作为中间桥梁。现在很多开源的cms系统,博客系统,论坛系统都自带整合ucenter的插件,但是 如果是自己开发的网站需要和discuz或者ecshop同步登录的话,就需要把自己的完网站整合上ucenter了。

其实整合ucenter也没有传说中的那么困难,今天我就详细的介绍下如何把自己的网站整合上ucenter,实现多站点同步登录,同步退出的方法。

首 先你需要安装一个ucenter,ucenter可以去康盛的官方网站下载最新版本。ucenter他所起到衔接各个站点会员注册,登录作 用,ucenter的会员表中包含了你需要整合的各个网站的所有会员,用户不管在那个网站注册,程序先是把会员信息添加到了ucenter的会员表中,然 后再添加到当前网站的会员表里面,而在登录的时候,程序是先去查询ucenter会员表中是否存在该用户,如果存在查询当前网站会员表中是否存在,如果不 存在就证明该用户是通过另外一个站点注册的并且是在该站点第一次登录,就需要把该会员添加到当前站点的会员表中。上面所说的就是ucenter的会员整合 机制了。

ucenter安装完之后,这时就需要去ucenter后台添加应用了,首先登录到ucenter的后台,

点击应用管理里面的添加应用,把你需要整合的站点信息添加进去。应用名称,应用的主URL,通信密钥,应用类型,应用接口文件名称是必填项目,点击提交 后,下面就会生成相关的应用的UCenter 配置信息,这个配置信息等会儿会用到。ucenter的应用配置好后,就需要把整合ucenter需要用到的文件放你站点的根目录下面,文件包括:

A:api文件(你去看看像discuz啊,supesite啊。uchome啊他们里面都有的),

B:还有一个inlude文件夹(里面只需要一个文件db_mysql.class.php:这个是里面链接数据库操作的),

C:还有一个config.inc.php(而我自己的配置文件就是这个,所以我改了个名字叫config.php,这里改之后,就需要吧api/uc.php里面的所有config.inc.php替换成config.php了),

D:uc_client文件(在你下载的ucenter压缩包里面的这个文件拷贝过来就ok啦),

文 件夹放好之后,就是配置config文件了,把上面在ucenter后天添加应用的时候生成的“应用的UCenter配置信息”复制到 config.inc.php中,然后在刷新ucenter后台的应用列表,看下他的通信状况,如果通信成功就证明该站点已经整合成功了。

现在,ucenter和站点的整合就已经结束了,但是还没有实现同步登录同步退出的功能,如何实现站点之前的同步登录同步退出呢?这就需要去修改某些文件 了,找到api下面的uc.php,这个就是实现同步登录同步退出操作的函数文件,找到synlogin这个function,这个function就是 同步登录的函数的,这个函数里面你可以进行数据库操作,保存你站点中登录之后的cookie或者session。这里只是完成了别的站点同步登录到你的网 站,那么如果让你的网站也同步登录到其他的站点呢?这就需要去修改序了,这个代码在ucenter的接口文档里面有登录和注册的函数,如登录函数是 uc_user_login($str_user_name, $str_user_pwd);大家可以自己看看,需要注意的是要实现同步登录,他是js来实现登录的,ucenter程序是把同步登录站点的代码生成了 js代码,$ucsynlogin = uc_user_synlogin($int_id);这就是同步登录的代码,你可以打印下这个代码,你就可以看到,你ucenter有几个应用,他就会 生成多少个js代码,而这些代码就是去通知其他站点同步登录的,所以这些代码需要在页面上面执行才能实现同步登录功能。代码修改完了之后,你需要把 ucenter后台应用里面的同步登录和同步退出选择上,

相同,同步退出和同步登录也一样的是想。

到此为止,网站会员整合ucenter,实现多站点同步登录方法的讲解就结束了。大家可以结合ucenter的相应的整合文档和实例测试一下。

感谢 phplovercn 的投稿