插件作者的标准出来了!Manyou诚邀开发者加盟!
《站长》&《程序员》杂志火热征集开发者
立即免费下载 Discuz!6.1.0正式版
Discuz! 6.1.0 使用说明
Discuz!NT2.5正式版发布
开放源码下载
UCenter Home 1.2 正式版发布
官方站 | 帮助文档
基于ECShop的网店托管-卖否
PHP就业培训直通车 | LAMP培训大连
Discuz!收费服务内容及价格
论坛免费升级 手握手
Discuz!/ECShop 专用官方虚拟主机
【九城-奇迹世界】专题活动开始了!
Comsenz 招聘信息
网店系统ECShop v2.6.0正式版火热发布
基于Discuz!的免费论坛空间5D6D
参与有奖社区调查 赢取台湾5日游
发新话题
打印

[使用] [申精]详解ucenter原理及第三方应用程序整合思路、方法

本主题由 heyond 于 2008-1-13 21:53 设置高亮

[申精]详解ucenter原理及第三方应用程序整合思路、方法

整合了 ucenter就等于整合了整个php界的所有php程序。

一、功用:
不对,何止整合了整个php界的所有php程序,而是整合了 ucenter就等于整合了所有的asp/asp.net/php/jsp等其它语言的所有web应用程序。(因为ucenter client的api开发包,dz会推出其它语言版)

而且所有整合的程序同步登录,同步退出,同步修改密码。最终用户可以通过它轻松通行在各个应用之中,无需重复登录、注册、退出

一个id可以出入一个站内的所有程序,如cms和bbs,也可以一个id出入www.a.comwww.b.comwww.c.com

a.com的用户可以和b.com的用户互发短消息pm,a.com的用户可以和b.com的用户加好友。

而且可以实现站内信(pm)和其它任意站的任意程序的站内信(pm)互通。

可以实现www.a.com与[url]www.b.com及[url=http://www.c.com]www.c.com[/url][/url]共享一个用户库,www.a.com的用户可以给[url=http://www.b.com]www.b.com[/url]的用户pm短信.

用户组与discuz不对应的问题也得到解决。因为一般应用程序的用户组是单独的一个应用,和discuz再没有关系,而是和ucenter有关系,而ucenter没有用户组的概念。


二、整合方法:
如果单说整合用户的话,整合时应用程序的改动也非常小,原数据库不用动原写cookies的代码不用动原写数据库session的代码不用动,原来的程序不用怎么动,只需改动以下4个文件:

longin.php  register.php  logout.php  修改密码文件.php  (忘记密码.php不用动,用原来的就可以)

4个文件中加上和ucenter api通信的语句和逻辑结构。

另需要针对ucenter新增加一个文件uc.php,这个文件就是应用程序接收ucenter传来的指令并执行的文件。而且他利用p3p技术实现反向登录a.com或是同时反向登录a.com/b.com/c.com的dedecms或是phpcms或是任意所有程序。


共计改4个文件,增一个文件。


如果要是整合站内信pm,好友,头像等功能,思路与方法和整合用户类同。

另外有一点,在不同的系统之间注册的用户,在第一次登录这个从来没有登录过的系统时,会让激活。借用这个激活,可以让用户完善在本应用程序中的资料,如企业注册资料。资料不完善,不可以激活。

如在bbs注册一个用户test,第一次来到b2b的程序中,这时,并不会自动登录,而是要求用户激活,而test在bbs注册时填的字段与b2b中要求的不同。这时让用户完善资料。第二次来就会自动登录。


三、 uc原理:

以用户登录为例介绍,其它注销,改密码,消息,头像,好友均类同。

1.
从用户xxx在某一应用程序的login.php,输入用户名,密码讲起。
先用uc_user_login函数到uc server验证此用户和密码,如正确,则写入session,写入cookies,并更新应用程序会员表中的登录ip,登录时间。用户感觉不到这个过程。
2.
然后通过uc_user_synlogin通知uc server 用户xxx登录成功,这个过程可能使用ajax,用户感觉不到通知过程。
3.
uc server收到这个消息后,马上命令手下,把xxx登录的消息,像令牌环一样,发给所有愿意接收(后台中那个是否开启同步登录)这个消息的其它应用程序。其实就是带参数访问一下各应用程序的uc.php,用户感觉不到这个过程。
4.
各应用程序靠api下的uc.php来接收uc server发来的消息,并对uc server言听计从,让干什么就干什么。现在,收到让xxx用户在你的程序中登录的命令,马上执行。
并写本应用程序的session,并且使用p3p, 写入相同域或不同域的cookies.  用户感觉不到这个过程。

5.最后所有和uc整合的程序,xxx均登录成功。用户从www.test.com/bbs登录后, 跳到www.test.com/news同样显示登录。因为bbs 和news系统在后台均已登录。

6.应用程序与uc server的会话结束。


得益于uc设计的精巧过程,整个过程,用户完全感觉不到ucenter的存在.这是整合程序历史上的创新。完

[ 本帖最后由 bingzhou01 于 2008-1-13 09:50 编辑 ]
本帖最近评分记录
  • tntaben 金币 +1 字数补丁 2008-4-9 17:51
  • richardclc 金币 +1 不错。支持 2008-3-9 07:32
  • richardclc 威望 +1 不错。支持 2008-3-9 07:32
  • Flash菲 金币 +5 猛男!! 2008-1-17 15:52
  • Flash菲 威望 +5 猛男!! 2008-1-17 15:52
  • fengmayi1 金币 +2 不错 2008-1-14 15:06
  • l23l23 金币 +1 我非主流网 www.5fzl.com 2008-1-14 05:03
  • heyond 金币 +5 原创内容 2008-1-13 21:52
  • heyond 威望 +5 原创内容 2008-1-13 21:52
  • 香水有毒 金币 +2 我很赞同 2008-1-13 13:11
汗一个,那么多的人看,没人顶,只有qianmeng评了个分。
你不是官方的人把?
我安装成功,但是论坛后台无法正常管理
了解晋江,从这里开始!
http://www.fj595.cn
不错哦···
支持下··
易想个人站
www.imeasily.com
我网站发了一个SDK测试包 你可以看看
楼主分析的不错
( 【猴猴的山林茶社】
山林茶社 Discuz! 群:28702398     山林茶社 UCenter 开发、交流群:12893286
支持一下 暗暗啊
顶一下,虽然看不明白~~
好文章,今天刚刚看到,学习中
联合涂料网欢迎您的光临!
http://www.coatu.com/bbs
写的非常好,不过好多地方俺水平有限看不明白,呵呵,但我争取用的明白!
学习DV 推广DV 普及DV-欢迎访问DV爱好者的乐园

http://www.intodv.com
发新话题
版块跳转