您的位置:首页 > 其它

赵雄飞uc讲解20110216

2016-10-17 17:45 99 查看
直接copy来的 , 属于对话形式 , 我也是学习用的 , 保持了原始格式 , 不喜勿喷 :

首先讲解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请求的串。

类似于这样的<scrip type="text/javascript" src="http://其他应用地址/api/uc.php?加密串"></script>  程序在得到这些字符串的时候要把他们输出到当前用户的浏览器上。这些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的整合原理上面基本上就完全讲完了。

大家可以提问了。

仅仅对原理不明白的。

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

问题:

担凳仔霸头位<panguohui@vip.qq.com> 10:19:46  就是调用完同步的接后以后,就需要到UC.PHP文件中处理  担凳仔霸头位<panguohui@vip.qq.com> 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
要是应用多的话,浏览器访问各个应用会很慢吧
长沙-沧海一粟<xiezhilong167@163.com> 10:24:29
伪造是可能的,没有绝对安全的系统
长沙-沧海一粟<xiezhilong167@163.com> 10:25:04
js串是在本地执行,怎么去获取呢?
晋PHP/ASP-YinG(33098184) 10:25:14
京-PHP-赵雄飞(13740080)  10:23:52
蜘蛛(85466188)  10:22:42
是用ajax分开逐个应用分别单独执行的?

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

这个应该也可以用AJAX实现吧
柱辉<dwin408@qq.com> 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
要是应用多的话,浏览器访问各个应用会很慢吧

会的。
担凳仔霸头位<panguohui@vip.qq.com> 10:26:51
其实他的意思是 同步登陆的接口生成一个 uc.php地址,然后用JS调用这个 uc.php地址 ,就等于调用了uc.php文件。然后uc.php 的文件处理这个登陆串
京-PHP-赵雄飞(13740080) 10:27:11
毕竟是一次请求。但是就像你的页面输出3个图片和5个图片的区别一样。只要你服务器没挂掉,其实是很快的。
粤-JSP-lucene(7290204) 10:27:17
多个应用同步登陆的时候是按照在uc里面添加应用的顺序来定的吗,也就是按照应用id的吗?
京-PHP-赵雄飞(13740080) 10:27:18
有挂掉的会比较卡。
京-PHP-赵雄飞(13740080) 10:27:34
担凳仔霸头位<panguohui@vip.qq.com>  10:26:51
其实他的意思是 同步登陆的接口生成一个 uc.php地址,然后用JS调用这个 uc.php地址 ,就等于调用了uc.php文件。然后uc.php 的文件处理这个登陆串

总结的很到位。
京-PHP-赵雄飞(13740080) 10:27:57
粤-JSP-lucene(7290204)  10:27:17
多个应用同步登陆的时候是按照在uc里面添加应用的顺序来定的吗,也就是按照应用id的吗?

按照uc后台的顺序。
新人京-PHP-雪灭报到啦,大家快来迎接吧! 10:28:45
初来乍到,快跟大家介绍介绍自己吧:)我的兴趣爱好:我喜欢的音乐:我推荐的电影:我的交友宣言:[图片](请...
我要欢迎 | 送鲜花/笑脸
晋PHP/ASP-YinG(33098184) 10:28:52
其实就是用户使用GET方式挨个登录各个应用,只是用户看不到这个过程
蜘蛛(85466188) 10:29:16
每个应用一次请求?
柱辉<dwin408@qq.com> 10:29:19
嗯
京-PHP-赵雄飞(13740080) 10:29:29
晋PHP/ASP-YinG(33098184)  10:28:52
其实就是用户使用GET方式挨个登录各个应用,只是用户看不到这个过程

总结的很到位。
口明明口(328001026) 10:29:46
ucenter那个邮件推送功能,有可能实现吗
京-PHP-赵雄飞(13740080) 10:30:01
给大家十分钟时间自由讨论。10分钟后我来讲实战。
京-PHP-赵雄飞(13740080) 10:30:07
那就更简单了。
京-PHP-赵雄飞(13740080) 10:30:15
口明明口(328001026)  10:29:46
ucenter那个邮件推送功能,有可能实现吗

有。
京-PHP-赵雄飞(13740080) 10:30:23
但是目前还没见谁用这个东西。
柱辉<dwin408@qq.com> 10:30:28
当前应用状态改变后,JS挨个通知其他应用
口明明口(328001026) 10:30:56
ucenter那邮件功能,我以调用,Ucenter就挂掉了,变的很慢慢,几乎打不开
柱辉<dwin408@qq.com> 10:30:55
执行相应的操作
让我想想(375110054) 10:31:15
开始实践吧
口明明口(328001026) 10:31:36
必须到数据库清除那邮件推送队列表,才能正常
京-PHP-赵雄飞(13740080) 10:32:03
口明明口(328001026)  10:30:56
ucenter那邮件功能,我以调用,Ucenter就挂掉了,变的很慢慢,几乎打不开

那就是ucenter邮件配置的不正确。导致发邮件巨慢导致的。
京-PHP-赵雄飞(13740080) 10:32:26
发邮件又是计划任务的方式被触发的所以会导致uc的接口都巨慢。
柱辉<dwin408@qq.com> 10:32:35
ucenter那邮件功能 是要JS促发的吧~~~
京-PHP-赵雄飞(13740080) 10:32:58
柱辉<dwin408@qq.com>  10:30:28
当前应用状态改变后,JS挨个通知其他应用

这个是uc_server端在服务器端直接发起请求给uc.php的。
京-PHP-赵雄飞(13740080) 10:33:22
柱辉<dwin408@qq.com>  10:32:35
ucenter那邮件功能 是要JS促发的吧~~~

不是,每次请求uc_server的时候触发。
担凳仔霸头位<panguohui@vip.qq.com> 10:33:49
过程应该 是 应用程序->uc_client->uc_server->uc.php

柱辉<dwin408@qq.com> 10:34:13

京-PHP-赵雄飞(13740080) 10:34:36
过程应该 是 应用程序->uc_client->uc_server->uc.php

uc的通知是这个流程。
京-PHP-赵雄飞(13740080) 10:36:11
下面开始讲具体我们拿到一个应用要如何整合到ucenter上,具体操作的步骤是哪些。
京-PHP-赵雄飞(13740080) 10:36:32
我们先以php语言为例。
京-PHP-赵雄飞(13740080) 10:37:01
一、首先我们要到uc的后台去添加一个应用。自定义方式的添加。
京-PHP-赵雄飞(13740080) 10:37:51
添加完了之后我们就会可以在应用列表看到这个应用。但此时是通信失败的。因为压根就没有这个东西。只是让他先在uc的应用数据表中产生一条记录。
京-PHP-赵雄飞(13740080) 10:38:25
这个时候,我们点击该应用的编辑。进去后在页尾可以看到一个文本框给出了这个一段PHP代码。
京-PHP-赵雄飞(13740080) 10:39:05
copy这个代码,把他保存到你的应用的目录下。
比如dzx把这个放在了./config/config_ucenter.php
京-PHP-赵雄飞(13740080) 10:39:37
当然你可以放在任何一个目录,任何一个文件名称,这个都是没有强制约束的。根据你自己的结构来看。
京-PHP-赵雄飞(13740080) 10:40:06
这个配置文件里包含了一些重要的信息,比如该应用在uc给分配的id、密钥等等。
京-PHP-赵雄飞(13740080) 10:40:29
到此为止,第一步重要的工作我们已经完成了。
北京-潘立光(516487837) 10:41:50
我把网上的dzx 和数据库下到本地以后 就是登录不了是 是不是和uc的配置有关系
北京-PHP.NET(328150280) 10:42:06
不要插嘴
京-PHP-赵雄飞(13740080) 10:42:10
二、到comsenz下载uc的安装包,在里面找到uc_client这个包。copy到你的程序根目录下(也可以是其他目录,一般在根目录即可,方便升级)。
京-PHP-赵雄飞(13740080) 10:42:50
重要的第二步也完成了。是不是很简单呐。呵呵
柱辉<dwin408@qq.com> 10:43:13
是的~
成都-耗子[Phper] <jamaitu09@gmail.com> 10:43:20

京-PHP-赵雄飞(13740080) 10:43:31
三、我们需要着手修改之前程序的登录、注册、这些和用户基础数据相关的流程。
京-PHP-赵雄飞(13740080) 10:43:55
首先来处理登录。
京-PHP-赵雄飞(13740080) 10:44:03
找到你原本系统中处理登录的代码。
京-PHP-赵雄飞(13740080) 10:44:56
一般的程序登录处理流程大概是这样的。
显示登录表单,用户填写表单,程序接受到用户帐号密码到本地数据库验证,成功则登录成功,反之则提示失败。
京-PHP-赵雄飞(13740080) 10:45:25
我们整合到uc,因为是uc统一管理用户的基础信息了。所以不能再到本地数据库去验证用户帐号密码是否正确了。
京-PHP-赵雄飞(13740080) 10:45:53
那么我们需要修改的就是把之前到本地验证帐号密码的代码改成调用uc的用户登录接口接口。
京-PHP-赵雄飞(13740080) 10:46:29
需要注意的是我们在调用这个uc的接口之前要先引入uc的配置文件和uc_cient/client.php文件。
京-PHP-赵雄飞(13740080) 10:47:07
引入uc的配置文件是因为这里记录着很多重要的KEY,引入client.php是有了调用uc_server接口的函数了。
京-PHP-赵雄飞(13740080) 10:47:52
回到刚才,调用uc用户登录接口在引入client.php后变得很简单,就是一个函数,去执行函数即可。
京-PHP-赵雄飞(13740080) 10:48:09
结合uc的文档 readme你就知道如何处理这个函数的返回值了。
京-PHP-赵雄飞(13740080) 10:48:24
登录成功后,你记得需要调用一下同步登录的接口。
京-PHP-赵雄飞(13740080) 10:48:28
也是一个函数而已。
京-PHP-赵雄飞(13740080) 10:49:04
所以不要把接口想象的多复杂。在这里接口仅仅是个函数而已。内部如何实现你压根不需要关心。在你看来他就是一个简单的函数而已。
京-PHP-赵雄飞(13740080) 10:49:36
执行了同步登录的接口,记得要把函数返回值输出到用户浏览器上。具体怎么输出你不要问我了。
京-PHP-赵雄飞(13740080) 10:50:27
到这里你的应用已经可以用uc的用户来登录了。整合uc已经完成了最重要的环节。并且你也熟悉了uc的接口要如何调用了。
京-PHP-赵雄飞(13740080) 10:51:08
你可以跟老板说,明天就和整合完uc了。其实你再用一个小时就能弄完。明天你可以去聊天泡mm了。哈哈
京-PHP-赵雄飞(13740080) 10:51:21
接下来我们处理用户注册的代码。
京-PHP-赵雄飞(13740080) 10:51:35
同样找到原本系统中处理注册的代码。
京-PHP-赵雄飞(13740080) 10:52:24
一样的流程,前面是出表单,收集用户信息,程序接收到用户的表单,可以验证数据和发性,这些工作都昨晚之后程序把数据插入到本地用户表。
京-PHP-赵雄飞(13740080) 10:53:18
我们整合uc需要做的仅仅是在他插入本地用户表之前调用一下uc的用户注册接口。跟上面登录的时候一样呢。你需要先引入uc的配置文件和client.php
京-PHP-赵雄飞(13740080) 10:54:01
具体用户注册接口需要那些参数,返回值的范围这些你们参考uc的readme文档。我这里不赘述了。
京-PHP-赵雄飞(13740080) 10:54:29
注册需要注意的一点是用户的id是uc那边产产生的。
京-PHP-赵雄飞(13740080) 10:55:26
调用uc的注册接口,如果一切都ok了,我们可以得到用户的uid,这个uid在我们插入本地用户表的时候要插入进去。这样才能保证我们本地用户表和uc的用户表的uid、username是同步的。
京-PHP-赵雄飞(13740080) 10:55:40
ok,至此用户注册也完成了。是不是so easy
京-PHP-赵雄飞(13740080) 10:55:59
接下来我们讲一下用户修改密码、email的流程。
京-PHP-赵雄飞(13740080) 10:56:20
一般应用程序都会有一个用户中的页面,用户可以在此修改自己的密码和email这些信息。
京-PHP-赵雄飞(13740080) 10:56:35
传统的处理方式就是修改后直接保存到自己本地库。
京-PHP-赵雄飞(13740080) 10:56:55
我们需要整合到uc,所以密码和email我们需要同步到uc。那么具体怎么做呢。
京-PHP-赵雄飞(13740080) 10:57:29
就是在你跟新记录到你本地用户表的之前先调用uc的修改用户资料的接口。具体看uc的readme
京-PHP-赵雄飞(13740080) 10:57:54
这里需要注意的是修改email或者密码是需要原密码的。否则就是一个不安全的因素。
京-PHP-赵雄飞(13740080) 10:58:55
同样的地方还有找回密码的时候,这个时候因为用户忘记密码了。所以修改密码的时候直接修改,不需要提供原密码。具体看修改用户资料的接口。有两种模式,一种需要原密码。另一种不要。
京-PHP-赵雄飞(13740080) 10:58:59
两个地方别弄混了。
京-PHP-赵雄飞(13740080) 10:59:15
个人中心修改密码需要原密码。找回密码的时候不需要原密码。
京-PHP-赵雄飞(13740080) 10:59:32
至此基本上修改原程序的地方都完成了。
京-PHP-赵雄飞(13740080) 10:59:41
接下来说一下同步的问题。
京-PHP-赵雄飞(13740080) 10:59:58
同步因为是靠你应用程序的uc.php来完成的。
京-PHP-赵雄飞(13740080) 11:00:24
所以你需要创建一个uc.php文件在你的应用程序下。默认一般是
api/uc.php
京-PHP-赵雄飞(13740080) 11:00:50
里面的内容参考dz6.1以及之后的版本。仿照她们的代码接口。
京-PHP-赵雄飞(13740080) 11:00:52
即可。
京-PHP-赵雄飞(13740080) 11:01:18
仿照的只是代码的结构,具体代码实现的东西要依照你应用的特征来写。
京-PHP-赵雄飞(13740080) 11:01:35
比如同步登录这个接口。dz是保存一个auth的cookie
京-PHP-赵雄飞(13740080) 11:01:56
你的应用如果是靠session来保持的,那么你也应用是写session
京-PHP-赵雄飞(13740080) 11:02:27
这里可以直接copy你应用程序登录代码那里保持登录的代码进来稍加修改即可。

京-PHP-赵雄飞(13740080) 11:02:40
同步退出也一样的。
京-PHP-赵雄飞(13740080) 11:02:52
至此整合uc已经全部完成。
京-PHP-赵雄飞(13740080) 11:02:56
大家提问时间。
聆听(695515122) 11:05:20
还点写一个自动跳转
京-PHP-赵雄飞(13740080) 11:05:54
北京-PHP.NET(328150280)  11:04:33
我的程序中 输出那个同步script 但是在哪输出好呢

在你提示登录成功的页面输出。
口明明口(328001026) 11:05:56
是的
北京-PHP.NET(328150280) 11:06:31
我现在是转页
北京-PHP.NET(328150280) 11:06:58
如果不转页必须保持3秒以上才能登录上
长沙-沧海一粟<xiezhilong167@163.com> 11:07:39
我现在假A站和B站能uc通信
A站有一些会员了
B站也有一些会员了
然后再用ucenter整合
那么对于已有的会员,ucenter是怎么处理的
长沙-沧海一粟<xiezhilong167@163.com> 11:08:07
能==通
Bruce(61742108) 11:08:30
有个合并会员函数API
Bruce(61742108) 11:08:45
不知道能用上不
长沙-沧海一粟<xiezhilong167@163.com> 11:08:59
如果有两站会员名相同的呢
让我想想(375110054) 11:09:12
合并的时候会有提示的
让我想想(375110054) 11:09:28
你们都详细看看api里面几乎都有你们提到的问题
长沙-沧海一粟<xiezhilong167@163.com> 11:09:36
我只想知道是怎么处理的,是不是相同的会员改名还是?
让我想想(375110054) 11:09:57
那就改名啊
京-PHP-赵雄飞(13740080) 11:11:10
长沙-沧海一粟<xiezhilong167@163.com>  11:07:39
我现在假A站和B站能uc通信
A站有一些会员了
B站也有一些会员了
然后再用ucenter整合
那么对于已有的会员,ucenter是怎么处理的

已有的会员你想办法先倒入到ucenter中。
京-PHP-赵雄飞(13740080) 11:11:40
长沙-沧海一粟<xiezhilong167@163.com>  11:08:59
如果有两站会员名相同的呢

合并很复杂,也不一定就正确。我建议你做个取舍。
北京-丁一(410772675) 11:12:36
cookie怎么传过去的

北京-PHP.NET(328150280) 11:12:50
我直接导入进去的
柱辉<dwin408@qq.com> 11:13:01
长沙-沧海一粟<xiezhilong167@163.com>  11:07:39
我现在假A站和B站能uc通信
A站有一些会员了
B站也有一些会员了
然后再用ucenter整合
那么对于已有的会员,ucenter是怎么处理的

在UC建立通信,分别在AB中加入UID字段,写个程序将AB中的数据导入到UC中去,返回UID保存在原数据库中。EMAIL是为一的,看你如何处理
北京-PHP.NET(328150280) 11:13:04
导入失败的就让他登录后再自己改
京-PHP-赵雄飞(13740080) 11:13:14
北京-PHP.NET(328150280)  11:13:04
导入失败的就让他登录后再自己改

我有点挫败感。
京-PHP-赵雄飞(13740080) 11:13:27
你看我啥时候讲cookie的传递了。
北京-PHP.NET(328150280) 11:13:43

京-PHP-赵雄飞(13740080) 11:13:46
北京-丁一(410772675)  11:12:36
cookie怎么传过去的

上面是回答这个的。
京-PHP-赵雄飞(13740080) 11:14:01
北京-PHP.NET(328150280)  11:13:43

抱歉copy错了
长沙-沧海一粟<xiezhilong167@163.com> 11:14:20
我觉得可不可以,把这个是否整合的权力交给用户自己呢
晋PHP/ASP-YinG(33098184) 11:14:32
有数据的整合,可以考虑为老用户单独做个登录页面,用户登录时调用注册接口
京-PHP-赵雄飞(13740080) 11:14:41
取决与你愿意为此事付出的成本。
京-PHP-赵雄飞(13740080) 11:14:55
这样当然体验很好,但是需要开发的东西比较多。
北京-丁一(410772675) 11:15:36

uc.php那边接收几个参数啊

Bruce(61742108) 11:15:26
长沙-沧海一粟<xiezhilong167@163.com>  11:14:20

API 里有把重名用户合并uc
Bruce(61742108) 11:15:45
uc_user_merge()
长沙-沧海一粟<xiezhilong167@163.com> 11:15:42
也就是用户愿意和其他系统同步通信的话,就改变自己的用户名,如果不愿意就可以保留不变
天津-savelearn(1270989) 11:16:06
飞哥  UC。php 可以判断出登录的是不是 UCENTER的管理员吗?
长沙-沧海一粟<xiezhilong167@163.com> 11:16:08
嗯,我是想ucenter现在唯一的缺陷还在这里
京-PHP-赵雄飞(13740080) 11:16:09
不可能。登录没办法做了
晋PHP/ASP-YinG(33098184) 11:16:17
这样登录验证起来比较麻烦
京-PHP-赵雄飞(13740080) 11:16:25
uid\username在各个系统以及uc中必须统一。
长春-小C(24679070) 11:16:46
老大,有没有修复MYSQL的修复工具没有啊?
长春-小C(24679070) 11:17:01
我的数据库恢复失败了,想修复下
京-PHP-赵雄飞(13740080) 11:16:59
别跑题。
京-PHP-赵雄飞(13740080) 11:17:04
repair table
长春-小C(24679070) 11:17:25
不好意思,谢谢
Bruce(61742108) 11:18:42
石头,你讲的时候,没进到群里。你讲的记录能copy一份吗?
京-PHP-赵雄飞(13740080) 11:19:45
嗯。我会copy出来的。
Bruce(61742108) 11:19:59
谢谢石头!
京-PHP-赵雄飞(13740080) 11:20:47
表客气。
京-PHP-赵雄飞(13740080) 11:21:14
我今天讲这些希望大家都明白基本的原理。因为我之前遇到很多有问题的人都是原理不明白。
天津-savelearn(1270989) 11:22:11
飞哥 你说今天还讲后台登录的同步呢
Bruce(61742108) 11:22:15
嗯,知其然知其所以然!
京-PHP-赵雄飞(13740080) 11:22:39
天津-savelearn(1270989)  11:22:11
飞哥 你说今天还讲后台登录的同步呢

OMG。我要奔溃了。
京-PHP-赵雄飞(13740080) 11:22:49
难道我没有讲到同步登录吗?
长沙-沧海一粟<xiezhilong167@163.com> 11:22:59
呵呵
长沙-沧海一粟<xiezhilong167@163.com> 11:23:14
别上火,上火易伤身
天津-savelearn(1270989) 11:23:17
后台管理员 不是普通用户
京-PHP-赵雄飞(13740080) 11:24:05
后台管理员怎么还有同步登录呢?
京-PHP-赵雄飞(13740080) 11:24:17
你是说应用的后台,还是uc的后台?

口明明口(328001026) 11:24:24
石头兄,那头像调用的那,是否会有耗资源的问题?
京-PHP-赵雄飞(13740080) 11:24:49
问题不大。
天津-savelearn(1270989) 11:25:05
DZ论坛等候以后 可以在论坛的后台 直接打开UCENTER的后台 而不需要再登录 UCENTER    我自己的应用也想这么做
京-PHP-赵雄飞(13740080) 11:25:10
我站点所有图片都通过php输出都没啥问题。
天津-savelearn(1270989) 11:25:16
登录以后  打错字了
京-PHP-赵雄飞(13740080) 11:25:33
DZ论坛等候以后 可以在论坛的后台 直接打开UCENTER的后台 而不需要再登录 UCENTER    我自己的应用也想这么做

这么做没啥意义。
口明明口(328001026) 11:26:08
石头兄,你们积分,用到UCenter中的了吗
长沙-沧海一粟<xiezhilong167@163.com> 11:26:09
而且也降低了系统的安全性
Bruce(61742108) 11:26:16
登陆后台再次登录uc ,是为了安全
京-PHP-赵雄飞(13740080) 11:26:18
uc没有积分。
Bruce(61742108) 11:26:36
那个不是同步的问题!
京-PHP-赵雄飞(13740080) 11:26:36
可以通过uc来串联不同应用之间的积分。
天津-savelearn(1270989) 11:26:58

长沙-沧海一粟<xiezhilong167@163.com> 11:27:07
违背了设计初衷
京-PHP-赵雄飞(13740080) 11:27:13
是的。
Bruce(61742108) 11:27:40
uc的责任比较重,有很多应用,所以牺牲点麻烦换取安全,我觉得值得
天津-savelearn(1270989) 11:28:04
问题是 UC自己开发的应用貌似都可以这么登录吧 而且管理员的权限 在那摆着呢 没有权限也管理不了啊
Bruce(61742108) 11:29:10
兄弟别钻牛角尖。自己在琢磨琢磨!
天津-savelearn(1270989) 11:29:52
唉 算了  白等了一天 自己研究吧
京-PHP-赵雄飞(13740080) 11:29:56
天津-savelearn(1270989)  11:28:04
问题是 UC自己开发的应用貌似都可以这么登录吧 而且管理员的权限 在那摆着呢 没有权限也管理不了啊

dz后台登录uc仅仅是一个连接而已。
京-PHP-赵雄飞(13740080) 11:30:05
是你之前uc登录过了。否则还是需要密码的。
京-PHP-赵雄飞(13740080) 11:30:14
还是需要登录uc的。
Bruce(61742108) 11:30:29
现在才11:30,你还有半天呢!
京-PHP-赵雄飞(13740080) 11:30:27
uc的管理员有创始人和普通管理员之分。
京-PHP-赵雄飞(13740080) 11:31:16
你要直接在应用后台免登录管理uc,那当前的管理员该对应uc的哪一类管理员,哪一个帐号呢?
天津-savelearn(1270989) 11:32:06
UC 有算法啊  我就是不知道这个算法才问的啊
京-PHP-赵雄飞(13740080) 11:32:39
OMG,你完全答非所谓。
京-PHP-赵雄飞(13740080) 11:32:46
所问。
Bruce(61742108) 11:33:07
圈子绕大了
京-PHP-赵雄飞(13740080) 11:33:13
你想实现是可以的,手段就是通过authcode加密解密去弄。
天津-savelearn(1270989) 11:33:24
$ip = getIp();
$agent = $_SERVER['HTTP_USER_AGENT'];
$authkey = md5($ip.$agent."0CbN1h2Y4w649weT9B264L6N396V46fG68b9bC0y4H195Q345QdS0hff5cch4Y1o");
$check = substr(md5($ip.$agent), 0, 8);
$sid = rawurlencode(uc_authcode("$Example_username\t$check", 'ENCODE', $authkey, 1800));
return $sid;
天津-savelearn(1270989) 11:34:01
UC 根据IP 游览器信息加 密出一个 sid 里面包含管理员帐号 的 cookie
Bruce(61742108) 11:34:15
兄弟昨天好像问过这个问题。
天津-savelearn(1270989) 11:34:29
是啊 我就等今天 飞哥能给我讲讲呢
京-PHP-赵雄飞(13740080) 11:34:48
这个不用讲。这个你就按照这个去做就可以了。
Bruce(61742108) 11:35:21
uc_authcode('sidstring','DECODE');
解密你试过吗?
Bruce(61742108) 11:36:14
这个跟同步到没关系啊,uc有加密解密机制吧!这个我没试过
天津-savelearn(1270989) 11:36:34
我做了 可是登录不了 上面那个代码也是从 UCenter里面分离出来的

但是到我自己的应用里单击连接到UCENTER 依旧需要登录

所以我才等了一天来问的
Bruce(61742108) 11:37:07
你试试解密,如果能解出来明码,那你在一步一步排除。
Bruce(61742108) 11:37:39
石头跟你离那么远,讲的只能是启发性和原理性的,给你解决你的代码问题,这不现实呀
京-PHP-浮云(6189014) 11:38:07
查一下uc.php的问题
天津-savelearn(1270989) 11:38:10
嗯 我自己试去吧  不麻烦大家了

我就想问问 他碰没碰到过这种情况
Bruce(61742108) 11:38:41
嗯!好好自己研究,攻克了,跟大家聊聊
天津-savelearn(1270989) 11:38:42
我也没想谁能帮我写代码 我只需要知道大概的问题出在哪
Bruce(61742108) 11:39:18

京-PHP-赵雄飞(13740080) 11:46:02
你的思路是错误的。不要想着同步。
京-PHP-赵雄飞(13740080) 11:46:17
大多数时候你并不是登录应用后台就要去管理uc的后台。
京-PHP-赵雄飞(13740080) 11:47:01
在点击那个uc的连接的时候把加密串传过去,uc接收到之后给当前用户设置为一登陆即可。
京-PHP-赵雄飞(13740080) 11:47:26
我先撤了。大家慢慢聊。
北京-蜗牛(PHP)<gb2312@163.com> 11:47:47
辛苦了
京-PHP-赵雄飞(13740080) 11:47:50
有谁原理帮忙把刚才的讲课内容copy出来共享到uc的开发群里。
京-PHP-赵雄飞(13740080) 11:47:57
我下班了。
京-PHP-赵雄飞(13740080) 11:48:11
今天离职了。要去新公司去报道了。
京-PHP-赵雄飞(13740080) 11:48:13
88
Capricorn~(873479382) 11:48:25

Capricorn~(873479382) 11:48:32
挣多多的钱哦~~
北京-潘立光(516487837) 11:49:06
那个公司 肯定 很牛x吧
粤-JSP-lucene(7290204) 11:49:44
非常感谢~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uc UCenter