给UCenter的拥蹩们泼点冷水

康盛创想“七剑合璧”围绕着UCenter同时发布,不仅为站长同时提供了建立各种类型网站的全套解决方案,而且还充分实现了多系统之间的用户数据完美整合,并且解决了跨域条件下单点登录等问题。让很多开发人员都眼前为之一亮。

在康盛创想的论坛上能看到有不少JSP程序、ASP.NET程序员都在咨询或者说抱怨官方的开发文档和示例太难看懂,完全是基于PHP的,如果不把PHP搞懂,很难实现在其它开发平台下的接口开发。而官方的回答只是“以后考虑”。

动易SF 1.1的发布公告中也指出基于UCenter的接口已经列入开发计划中。令广大动易站长欢欣鼓舞。

但是,我却不得不在这里给众多开发人员和站长们泼一盆冷水——基于目前的UCenter,是没办法开发其它平台的接口的。原因很简单,UCenter服务器端默认了客户端的接口路径为“应用URL” + “api/uc.php”,而且这个是不能在配置文件或者后台修改的。

也就是说,不管你在什么平台下,是什么开发语言,你的接口必须为uc.php。那么,只有一个解决方法,就是在你的服务器上映射.php的后缀到你的程序语言的解析器,让.php也变成asp文件或者.net页面的后缀。那你的站点就不可能再同时支持php和asp,或者php和jsp,或者php和asp.net。而如果你是虚拟主机用户,你需要做的事情更多。

我们可以通过简单的方法修改UCenter,使之支持各平台语言的接口(要修改的文件只有4个左右),但是如此一来,等于是第三方开发人员或者说二次开发人员需要对服务器端进行修改,那已经不像是一个“通用平台”的问题了。

其次,在跨平台的信息传递中,UCenter大量使用的是Get/Post方式发送URLEncode编码的数据,而不是在所有平台所有编码语言下都有良好支持的xml格式。这样开发人员不得不继续花费大量时间来处理编码问题。

还有,UCenter由于采用PHP开发,大量使用了PHP的特性的东西,比如UNIX时间戳,比如键值对的数组,而在其它语言平台中,对这些东西的支持是各有不同的。虽然能够处理,但是却非常麻烦。

UCenter目前给我们带来一个最大的启发,就是一个中心,多套应用的模式,以及采用P3P来实现跨域Cookie处理的思路。

我相信,随着UCenter的出现解决了一系列跨站整合中的问题后,完善的跨站用户中心应该会很快出现。而UCenter如果不在下一版本中做大规模的改变,它是不太可能成为最终的通用整合中心的。至少这么久以来,我们可以看到康盛自己的.NET论坛都还没能支持这个UCenter,就能说明一些问题。

About 小李刀刀

网页重构/前端开发人员,目前就职于腾讯科技互联网用户体验设计中心(Tencent ISUX)。
This entry was posted in 所谓技术, 指手划脚 and tagged , , , . Bookmark the permalink.

3 Responses to "给UCenter的拥蹩们泼点冷水"

Leave a reply