UCenter 基本原理一瞥

UCenter 是国内最常用的会员整合系统,它定义了一套接口用于不同应用(系统)间的协作。

注册过程

通过某个应用注册时,应用会先调用 uc_client/client.php 中的 uc_user_register,让 UCenter 先添加用户。如果成功则返回该用户id,否则返回错误代码(小于0)。应用根据返回值确定是继续在本系统中注册还是提示错误信息。

UCenter 并没有定义同步注册的接口,同步注册的功能是在同步登录的接口中实现的。

同步登录

通过某个应用登录时,先调用 uc_client/client.php 中的 uc_user_login 进行验证。验证通过后再调用该文件中的 uc_user_synlogin,该方法会调用 UCenter 的 control/user.php 中的 usercontrol->onsynlogin 方法,该方法根据配置返回各个应用的同步登录代码。执行登录动作的应用需要把这段代码以html的形式输出到页面上。

这段代码以引入脚本的形式来触发对不同应用的接口的请求的,大概形式是这样的:

<script type="text/javascript" src="http://aaa.com/api/uc.php?time=xxxxx&code=xxxxx" reload="1"></script>
<script type="text/javascript" src="http://bbb.com/api/uc.php?time=xxxxx&code=xxxxx" reload="1"></script>

这些的代码输出到页面上,会分别触发对各个应用下 api/uc.php 的请求(这个文件的细节需要各个应用自己实现),并调用其中的 uc_note->synlogin 方法。通常在这个方法里会判断本应用中是否存在要求同步登录的用户,如果不存在则增加用户。

注意代码中的 code 是实际请求参数的加密字符串,UCenter 接口负责封包和解包。

同步注销

与同步登录类似,但基本无须判断用户是否存在,只需销毁 session 等登录标识就好了。

 

posted @ 2015-04-12 23:22  BeMxself  阅读(296)  评论(0编辑  收藏  举报