【网学网提醒】:网学会员,鉴于大家对uc整合基本原理十分关注,会员在此为大家搜集整理了“uc整合基本原理”一文,供大家参考学习!
uc是comsnez公司退出的一个用户整合方案
包括server、client两个端。
server端负责接受client端发起的请求,并给出相应的处理。
client端是封装了一些server提供的接口的函数。通过这些函数来调用server提供的接口。
具体client封装了那些接口,以及接口的使用方法,大家可以参考uc下载包里的readme,有详细的解释。
client端和server的通信全部通过这些client.php封装的函数来完成。
以上内容大家有不明白的吗?下面是提问时间。
这只是基础的一个概念,估计大家都能明白。
一般整合uc的时候都需要client.php和uc.php这两个东西。client.php上面说过了。是主动想server端发起请求的接口封装函数。
那么uc.php刚好相反,这里uc.php他是最为一个server的,他接受uc_server发起的请求和用户浏览器直接发起的请求。
这样对于整合uc来说就实现了server和client双向通信。而不是单一的client发起,server接受。
那么uc.php在什么情况下会被请求到,或者说他主要负责处理什么事情呢?
打开打开dz6.1以及以上的版本的uc.php(api/uc.php)可以看到下面有很多处理方法。逐一看一下就明白了。我大概讲一下。
uc.php会接受uc_server发给他的通知。这些通知大概有用户改名、用户改密码、用户被删除、还有一些其他的。
另外一个最重要的是uc.php会接收用户浏览器发起的同步登录、退出请求。
uc.php在接收到这个请求的时候会把当前浏览器设置为登录或者退出状态。这就是同步登录和退出最重要的一个环节。
那么浏览器是在什么情况下会发起这个同步登录的请求呢?
打开uc的readme文档。我么可以找到一个同步登录的接口。这个接口会在用户登录的时候,帐号密码验证成功以后被调用。
重点来了:调用这个接口并不能理解就实现其他应用的同步登录。一定要明白这一点。web上的应用登录状态是相对浏览器来说的。服务器端的请求是无法让浏览器处于登录状态的。
这个时候请求同步登录接口得到的返回是一些javascript请求的串。
类似于这样的
程序在得到这些字符串的时候要把他们输出到当前用户的浏览器上。这些html代码被输出到用户浏览器上浏览器会发起请求,到src的地址。
这个地址就是我上面说的uc.php的地址。
比如你的uc下有A、B两个应用。那么在A登陆的时候。A在判断用户身份合法的时候,就会去调用uc的同步登录接口从而得到一个同步登录串,记住了。这个时候得到的这个同步登录串是B应用的。
此时A需要先把当前用户设置为已经登录状态。之后输出那段B的同步
登录js串。
用户的浏览器就会向B发起同步登录请求。
B的uc.php接收到这个请求后同样会把当前用户浏览器在B应用下设置为一登录状态。这样就实现了用户在A登录,在B也同时处于了登录状态。
同理如果还有C、D……等应用也是一样的原理。只是A在调用同步登录接口的时候就不是仅仅是得到B的同步登录串,他会同时得到B、C、D……的登录串。
这些js串在浏览器上逐个被执行了。其他的应用也就都登陆上去了。
同步退出和这个基本上是完全一样的原理,只是调用的同步退出的接口。
uc.php那里相应的也到了处理退出的代码。
uc的整合原理上面基本上就完全讲完了。