第一范文网 - 专业文章范例文档资料分享平台

ucenter整合原理和流程

来源:用户分享 时间:2025/10/6 7:34:27 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

首先讲解UCenter的基本概念。

大家不要插话,我开始了啊。呵呵

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的整合原理上面基本上就完全讲完了。

大家可以提问了。

仅仅对原理不明白的。

原理明白了,下面我会讲一个实战的例子。

问题:

担凳仔霸头位 10:19:46

就是调用完同步的接后以后,就需要到UC.PHP文件中处理 担凳仔霸头位 10:19:48 是不是

京-PHP-赵雄飞(13740080) 10:20:08 调用晚同步接口得到的是js串。 京-PHP-赵雄飞(13740080) 10:20:33

这个js串在输出到用户浏览器上的时候,浏览器会执行js,发起uc.php的请求。

蜘蛛(85466188) 10:20:44 逐个被执行

这里会不会有因网络慢执行不成功或者成功部分

上海-沉默[php](448932460) 10:20:58

可不可以不传密码 传一个用户名和一个加密的字符串实现同步登陆 京-PHP-赵雄飞(13740080) 10:21:22 蜘蛛(85466188) 10:20:44 逐个被执行

这里会不会有因网络慢执行不成功或者成功部分

有这个可能行。

蜘蛛(85466188) 10:21:56

那这个情况下是只有A能登陆的情况会出现? 京-PHP-赵雄飞(13740080) 10:22:30

性。或者用户快速的离开也有可能无法执行。 口明明口(328001026) 10:22:42

网上很多人,说这个JS串可能被伪造不安全,这个说法是否正确啊 蜘蛛(85466188) 10:22:42

是用ajax分开逐个应用分别单独执行的? 京-PHP-赵雄飞(13740080) 10:22:56 上海-沉默[php](448932460) 10:20:58

可不可以不传密码 传一个用户名和一个加密的字符串实现同步登陆

你那个属于山寨的方法。我这里只讲原生的uc是怎么做的。 京-PHP-赵雄飞(13740080) 10:23:19 口明明口(328001026) 10:22:42

网上很多人,说这个JS串可能被伪造不安全,这个说法是否正确啊

不可能被伪造,是很强的加密方式加密过的。 京-PHP-赵雄飞(13740080) 10:23:30

如果能伪造,那么可以去伪造更有价值的东西了。 京-PHP-赵雄飞(13740080) 10:23:52 蜘蛛(85466188) 10:22:42

是用ajax分开逐个应用分别单独执行的?

不是。得到的是html代码,直接输出到浏览器即可。 口明明口(328001026) 10:24:06

我的意思是,人家获取了那段JS串,以后就用这个串去登陆 晋PHP/ASP-YinG(33098184) 10:24:07

要是应用多的话,浏览器访问各个应用会很慢吧 长沙-沧海一粟 10:24:29 伪造是可能的,没有绝对安全的系统

长沙-沧海一粟 10:25:04 js串是在本地执行,怎么去获取呢? 晋PHP/ASP-YinG(33098184) 10:25:14 京-PHP-赵雄飞(13740080) 10:23:52 蜘蛛(85466188) 10:22:42

是用ajax分开逐个应用分别单独执行的?

不是。得到的是html代码,直接输出到浏览器即可。

这个应该也可以用AJAX实现吧 柱辉 10:25:32 伪造情况不在讨论范围

京-PHP-赵雄飞(13740080) 10:25:47 口明明口(328001026) 10:24:06

我的意思是,人家获取了那段JS串,以后就用这个串去登陆

有个有效期。

京-PHP-赵雄飞(13740080) 10:26:19 这个应该也可以用AJAX实现吧

那你需要从html代码中正则出src的地址。 京-PHP-赵雄飞(13740080) 10:26:42 晋PHP/ASP-YinG(33098184) 10:24:07

要是应用多的话,浏览器访问各个应用会很慢吧

会的。

担凳仔霸头位 10:26:51

其实他的意思是 同步登陆的接口生成一个 uc.php地址,然后用JS调用这个 uc.php地址 ,就等于调用了uc.php文件。然后uc.php 的文件处理这个登陆串

搜索更多关于: ucenter整合原理和流程 的文档
ucenter整合原理和流程.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c03f4i0g47q2cg5h8iuab_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top