一、 Ucenter介绍及原理
1)介绍
Ucenter的中文意思就是“用户中心”,其中U代表User也就代表You, 其含义就是 “用户中心”,它是Comsenz旗下各个产
品之间信息直接传递的一个桥梁。可以实现多个应用之间同步登录、同步注册、同步退出等功能。
Ucenter 分为用户端(uc_client)和服务端(uc_server)。 应用可以调用用户端提供的API接口来实现功能。
2)实验环境说明
实验环境说明: discuzX3.2、Ucenter1.6、MyAPP(自己的网站)
实验最终效果: discuz 与 MyApp 通过Ucenter实现同步注册、同步登录、同步退出功能
3)Ucenter整合应用原理
1)在MyApp应用中登录的代码处调用 uc_client 中的 uc_user_login 函数,该函数主要的作用是验证用户和密码是否存在
2)如果存在,则继续调用uc_user_synlogin,其实就是发送一个请求到Ucenter中,由Ucenter中的index.php文件来处理请求
3)Ucenter_server接收请求后, 将请求转发到应用中。 就是用<script src=""></script>格式来请求 ,请求的地址是各个应
用中的 api/uc.php 中。
4)api/uc.php 接收请求后, 访问相应的方法,来执行相应的操作, 如设置cookie等
二、 Ucenter部署应用
1)登录Ucenter管理后台,点击应用管理,默认情况下discuz和Ucenter已经通信成功,如下图所示
2)点击添加新应的操作。 将MyAPP自己的应用信息添加到Ucenter上。
3)应用目录结构
1) 在myAPP的应用根目录下,加入如下文件(如有多个应用,也都是一样的)
2) Ucenter的客户端程序, 也就是uc_client、api、config.inc.php 文件
3) config.inc.php文件里的内容是添加应用时自动生成的内容,复制到文件里即可
4) 通信失败的原因如下:
1) 请求uc_server 下的admin.php文件,根据传过来的模块和方法来确定下一操作给哪个文件
(默认模块是: app 方法 onping)
2) 根据admin.php文件的规则,则调用 control/admin/app.php文件, 并new一个对象,然后调用onping方法,是
否通信成功主要是这个方法来控制
3) 在onping 方法里的 调用了 test_api方法,用这个方法来确定是否通信成功,这个方法在uc_server/model/app.php里
4) 最后, 发送网络请求到自己的应用 api/uc.php 下。 此文件里有连接数据库的操作,确定连接的地址信息等是正否正确。
5) 只要确保以上流程没问题,则通信成功。
三、 Ucenter整合应用
1)部署自己的应用
1)在自己的应用中,引入uc_client/client.php ,和 config.inc.php 文件
2)在自己登录程序中加入 uc_client/client.php文件里的uc_user_login 方法,验证成功后,
再调用异步登录方法uc_user_synlogin,此方法返回的是 js代码,<script src="应用的api地址"></script>,必
须输入到页面才会有效
3) 输入信息之后, 会将请求转发到应用的 api/uc.php 文件里。 根据相应的参数, 来调用相应的方法,
如果是异步登录,就调用api/uc.php 文件里的 synlogin 方法,此方法就是设置 cookie,自己可以选择设置
4)在相应的应用里来设置登录信息即可, 完成。