ucenter整合碰到的问题

ucenter整合问题一般分两种:通信失败,通信成功但是通知失败。

ucenter整合自己项目,下载ucenter,解压,降advanced\examples 打开,将api放入根目录,将advanced\下的uc_client放入根目录,然后修改数据库配置文件,将自己的项目写上ucenter应用配置,开启等操作,具体不再赘述,网上有丰富的教程。

一,通信失败

1,首先,我们需要检查我们的应用的配置,是否与我们需要整合的项目配置一致,这点非常重要,后面的解密需要一致才可以解密

应用ip最好也要填上,不然怕有坑。

2,经过反反复复核对后,发现配置没有问题,那么我们就来跟踪代码。开启浏览器F12,打开ucenter后台管理的应用管理。

我们根据请求链接跟踪代码可以找到 uc_server/control/admin/app.php

例如http://www.xxx.com/api/uc.php?code=6aafddyqTn3ncTEay98sUMbfhXKYCpa2B9T6B95DYR%2Bn%2BN4%2B9u%2BqvBMspInOnF9wveTV2F5QTRg

然后我们拿着这个url放入浏览器,看下我们项目的代码为何输出不为1,一般都是自己代码的问题,反复debug即可查出问题所在,输出为1就可以通信成功了。

二,通信成功通知失败

一般通信成功不代表通知也成功,只有当通信成功与通知成功,才能算ucenter整合成功

为什么会产生通知失败呢?通知失败的产生一般是我们应用的登入登出注册等操作,异步请求去告诉其它应用时候出现错误,或者压根没有调用请求去告诉,导致其他项目不知道该用户进行了登入,所以同步登入登出失败。

接下来我们以登陆举例子:

这里“uc_user_login” 会进入我们项目 uc_client/client.php ,接着会进入uc_client/control/user.php 调用里面onlogin的方法,然后去uc_client/model/user.php 模型里面拿 ucenter库里面的用户表信息,然后返回的用户信息进行我们项目自己的业务逻辑,最后去通知各个其它应用,告诉他们该用户已经登录了。

注意:

 这里的apps.php由于是缓存,很有可能和ucenter服务端“uc_server/data/cache/apps.php” ,如服务端 $_CACHE['apps']有5个应用,但是我们项目$_CACHE['apps']只有1个,故这里就不会继续执行了。所以一定要检查清楚,直接点的做法,将“uc_server/data/cache/apps.php”直接覆盖各个应用的"UC_ROOT.'./data/cache/apps.php'"。

走到这段程序的最底层的一个方法

注意这里:

 这个函数需要我们在php.ini里面去掉禁用,和开启,具体操作可以上网查找。

这里的fsockopen会去调用ucenter服务端,ucenter_server/control/user.php生成链接:

走到这一步调试如果没有问题基本上发送通知都可以成功发送了,我们再去登陆,接下来可以看到我们的站点登陆成功后:

 这两个请求就是告诉另外两个应用,该用户已经登陆了。可能还会遇到这样的情况,就是代码跑下来,没有任何问题,但是我们本地的项目就是不发起通知的请求,可尝试这样子修改代码,修改方法uc_fopen的返回结果

这样就可以请求了。整套跑下来,基本上发送通知是可以成功了,如果还是不可以的话,那基本是我们项目代码有问题了,那么我们就把发送通知的url复制下来,如上上图http://www.xxx.com/api/uc.php?time=1533794347&code=0e22xFUQFRKxWHVpWLGEhX8jbr8x2oDLIoq79SbK7dYhxVWT5%2Fpc%2B2PhgHmBKWwRcoTlCU%2FWelzwM6NCE%2F%2FmmDxQoUefYA%2BPkSJX%2B3WQ2cWr36%2BpxgUAISE5b9iqfLLJvwDqGqI4JG8OQP7B3n97lPVrCRfjTdWpepzd

看下这个链接的返回结果有没有报错,跟踪这个url的代码,然后查看该项目是如何判断用户是否登录的,因为我试过,用第三方开源去套ucenter,调试半天后才发现,原来已经通知成功,而且本地是有session用户信息了,但是怎么都不显示登录,原因就是自己的代码用cookie登录,没有用session,所以自身的代码逻辑也是非常重要的。

通知的url会来到项目的api/uc.php

 经过上面一系列反反复复推敲,已经完成了通信成功与通知成功,好好体验ucenter带来的便捷吧~

 

发布了7 篇原创文章 · 获赞 5 · 访问量 5857
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览