UCENTER同步登录工作原理和配置要点

ucenter的同步登录原理:

1)Ucenter是和uc_client同步的。每个PHP应用,加入了UCENTER后,都会在主目录下有个UC_CLIENT目录。这个目录里,都有一个client.PHP。

2)以我的应用例子来说,我的ecshop系统和discuz系统都加入了ucenter。则ecshop登录时,user.php中的login会检查配置文件,并根据配置最终调用uc_clientclient.php中的uc_user_synlogin。

3)uc_user_synlogin会调用ucentercontroluser.php中的onsynlogin。也就是说,到这一步,登录信息终于通过应用的UC_CLIENT到了UCENTER。

4)ucenter生成类似<script src=http://xxxx.xxx.xxx/bbs/api/uc.php?time=.......></script>的字符串返回。在我的系统里,ucenter集成了两个系统(ecshop和bbs),生成的字符串就会包含两个<script></script>。

5)这些字符串被输出到浏览器,相当于ecshop和bbs的api/UC.PHP带着登录信息的参数执行了一遍,其实核心就是创建各自应用的COOKIE和生成SESSION——这正是登录要做的事。

6)这样,登录ecshop,就自动登录了bbs。之后你打开bbs的网页,就会发现自己已经登录了。

配置:

1)ucenter端没啥好说的,加应用,按照提示做对即可。每个应用显示“通讯成功”,通常就对了。要说容易犯的错误,应该是应用的网址(比如http://xxx.xxx.xxx/bbs),最后不要带“/”。

2)如果通讯没有成功,就要检查该应用的uc_client配置参数。每个应用,uc_client的配置文件在什么位置,是不一定的。这个要在每个应用的API目录的UC.PHP里面去看。比如我的discuz系统下,是在DISCUZ_ROOT/config/config_ucenter.php,这个就是配置文件。而ecshop是保存在数据库中的XXX_shop_config表里(在后台管理的会员整合中,可以修改各个参数)。

3)不管现在的配置文件参数是啥,只要把把ucenter里“应用的UCENTER配置信息”那个项目的内容复制覆盖过来,即可。

原文地址:https://www.cnblogs.com/yingjiang/p/4639740.html