关于Ucenter的比较深入的解析

  Ucenter,也就是DISCUZ的Ucenter系统,主要提供多个系统之间的用户通信系统。关于其原理我就不细说了,百度关于UCenter原理解释的以及带图解释的,一大把。

  关于利用Ucenter多站同步的用户控制:

  1. 用户在一个站注册了之后,是不允许在其他站注册的,通过Ucenter进行注册检测,如果Ucenter用户中心数据库存在当前用户,那么提示用户当前已注册,告诉他让他登录。如果登录用户名和密码正确,进行数据同步到本地。
  2. 当用户登录一个系统的时候,如果Ucenter不存在当前登录的用户,通过用户名和密码进行本地系统里的数据监测,如果本地系统的数据存在则进行本地到Ucenter数据的同步。

  那么,问题来了:

  1. 如果在搭建好Ucenter的时候,假设有三个系统,分别为OS1,OS2,OS3,那么在这之前,用户已经在OS1上注册了用户,但是在搭建好Ucenter的时候,用户没有在OS1上登录,那么OS1上的数据是不能喝Ucenter进行数据同步的,当用户在OS2或者OS3上注册的时候,我是希望用户直接以OS1上的数据进行同步和登录,但是基于现有的Ucenter功能我是没有发现可以在此时进行同步用户数据的,如果用户在OS2或者OS3上重新注册了用户,那么与Ucenter同步,这本来没什么,但是如果注册的时候的密码与原系统的密码是不同的,那么当用户再去登录OS1的时候,进行Ucenter数据与OS1数据进行同步登录检测的时候,就会出错,本身Ucenter存在了数据,那么又不能重复更新Ucenter数据,不同步的话,这几个系统之间要进行Ucenter数据同步就不存在任何意义。
时间: 2025-01-04 07:34:29

关于Ucenter的比较深入的解析的相关文章

Ucenter源码解析--frame.php

/control/admin/frame.php的流程结构类似于这样:/control/admin/frame.php -->调用父类adminbase的构造函数,(/model/adminbase的实例)-->adminbase类的构造函数,调用父类base类的构造函数(/model/base.php),真正干活的是base类的构造函数,所以,我们直接看base类的构造函数都实现了什么. //构造函数 function __construct() { $this->base(); }

Ucenter源码解析之——index.php

1:安装好ucenter之后,进入Ucenter,如果在浏览器地址栏上输入ucenter域名,默认加载index.php,如果不带任何参数输入域名,将跳到根目录的admin.php.我们可以看代码 $m.$a是index.php和admin.php接收的参数.$m代码着将要实例化的类,$a代码着将要调用的method.比如,$m=user,$a=login.则会加载/control/user.php,$m=new usercontrol(),$m->onlogin(); 接下来是引入释放版本的m

Ucenter源码解析之——admin.php

上一篇,我们讲到了Ucenter的index.php接收到m,a为空参数的时候,会直接跳到admin.php,这个是/目录下的admin.php.先看前面的代码. 先关闭错误提示和magic_quotes_runtime,如果启用了 magic_quotes_runtime,大多数返回任何形式外部数据的函数,包括数据库和文本段将会用反斜线转义引号.记录当前时间,这个和后面的记录结束时间是为了debug用的.后面会具体解释.然后定义了Ucenter的物理路径,Ucenter所在服务器IP,和/da

2-13 搭建LAMP环境并部署Ucenter和Ucenter-home网站

环境: VMware Virtual Machine : XGan63.cn IP: 192.168.31.63 (Bridge) 已配置本地yum源 ---> /mnt 已配置网络yum源 ---> http://mirrors.aliyun.com 安装前确保环境干净,避免软件冲突造成影响 检查环境: which httpd #查看是否安装httpd服务 chkconfig --list httpd #检查httpd启动项 chkconfig --list mysqld #检查mysqld

ucenter小结

经历了一天的折腾,大概搞清楚的ucenter接入应用的方法.总结如下: 一.下载安装ucenter.这个很简单. 二.然后就是接入应用. 1.先在你项目的根目录copy一份uc_client文件夹. 2.然后创建config.inc.php配置相关选项(没有就建立).这个文件是让uc.php用的.所以路径放在uc.php能读到的路径就行. define('UC_CONNECT', 'mysql'); // 连接 UCenter 的方式: mysql/NULL, 默认为空时为 fscoketope

ucenter整合

个人PHP项目与Ucenter整合(一) 今天研究了一天我个人的php项目与ucenter用户中心整合,从一开始的悲催,到后来的柳暗花明,现在来总结下我整合的步骤先:我弄的是ucenter1.6的gbk 1.先安装好你的个人项目和ucenter开源程序,设置虚拟的访问域名,假如我的项目访问地址为,http://my.ad.com   ucenter的访问地址为http://my.ucenter.com 2.将你从官网上下载下来的ucenter源码解压缩出来的advanced\examples\a

ucenter通信实现同步登录、同步退出(详细)

首先,需要去官网下载一个ucenter的包.然后解压下来. 先把ucenter/ucenter这个文件夹复制到你的项目根目录下改名为uc_server;(这里只是我建议修改,以便于我下面写的配置); 然后将ucenter/advanced/uc_client复制粘贴到自己的项目上. 在你项目根目录创建一个api的文件夹.把ucenter/advanced/examples/api里头有个uc.PHP复制到你项目的api文件夹下. 其次同样,ucenter/advanced/examples把in

magento和discuz(ucenter)整合集成开发思路

discuz自带ucenter,主要就是用于和其他程序的通信.我们可以下载discuz的ucenter开发手册进行magento和discuz的集成.里面有一些ucenter的一些接口函数和参数说明,没有这个文档,最模板就无法进行下面: 1.把api和uc_client目录放在应用程序的跟目录. 2.修改自己的配置文件(application/config/config.ini),在最后加上下面的代码:代码如下 [ucenter]uc.UC_ON = 0uc.UC_CONNECT = mysql

java和Discuz论坛实现单点登录,通过Ucenter(用户管理中心)

果学网-专注IT在线www.prismcollege.com 1,按照下面各大链接的教程,把Base64,Client,PHPFunctions,UC,XMLHelper加入web程序. 2,修改web.xml,加入 <servlet> <display-name>同步UC Server发出的操作指令</display-name> <servlet-name>UC</servlet-name> <servlet-class>com.e