自己创建应用与ucenter 1.6的通信分析

2013-04-02 17:11:28来源:afen和IT那点事儿作者:

做一个项目,本来想自己写一个用户系统,但互联网存在了很多好用的东西,为何不拿过来用呢,于是就想到了ucenter,装好ucenter,然后在网站上进行连接,似乎没有遇到什么困难,但是从ucenter这里一直提示通信失败,

做一个项目,本来想自己写一个用户系统,但互联网存在了很多好用的东西,为何不拿过来用呢,于是就想到了ucenter,装好ucenter,然后在网站上进行连接,似乎没有遇到什么困难,但是从ucenter这里一直提示通信失败,这样就没办法做到多个应用与其同步,比如你装了个discuz论坛,这样就没办法和网站进行同步登陆。

打开Ucenter,然后应用管理,右键通信失败->查看元素(我这里使用firefox和firebug插件哦~),可以看到

\

原来这里是使用ajax去请求你的网站的api,打开admin.php(ucenter的源代码哦~),顺着源代码最后找到了model/app.php里面的一个方法test_api()。于是加了一句话,把URL打印出来,看看到底请求的是什么路径

 function test_api($url, $ip = '') {

        $this->base->load('misc');
        if(!$ip) {
            $ip = $_ENV['misc']->get_host_by_url($url);
        }
 
        if($ip < 0) {
            return FALSE;
        }
        print_r($url);exit;
        return $_ENV['misc']->dfopen($url, 0, '', '', 1, $ip);
    }

打印出url为http://aaaa.com/api/uc_client/api/uc.php?code=5e08QnhQKBsxFLhoTWN0OReOoy8DEzzkZKHadyYEdSZWV4olQ8e2LfNKr2DKCLgFGbgdC5BTZuU

(这里怎么看?一样用firefox+firebug哦~)

于是用浏览器访问了一下,再去找uc.php看哪里有问题,只要调试出结果是1就可以了。当然,如果什么都不做,可以直接输出一个1,也可以显示通信成功。

注:ucenter版本1.6.0
 

关键词:ucenter

赞助商链接: