用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2304|回复: 3
收起左侧

[中级] ci3.x整合ucenter

[复制链接]
发表于 2018-1-14 17:40:20 | 显示全部楼层 |阅读模式
论坛里面那个精华是个2.x的版本,怎么整都用不了,找了好久,终于 弄好了,这里发帖记录以下,以便后来人不要浪费时间,话说,ci啥时候能像thinkphp那么活跃的,有各种扩展功能包学习使用呢。
主要是在api/uc.php上的配置

1、安装uc
这个不写了,大家应该都会的。

2、创建ci应用
只要填写应用名称、应用的主 URL就可以,密钥为空即可,是否开启同步登录、是否接受通知选是,提交后把页面最下方那个小方框里面的内容拷贝出来

3、在application/config/目录中创建ucenter.php,把第二步拷贝的内容填进去保存即可。

4、把ucenter源码包里面advanced目录里面的uc_client目录拷贝到ci的根目录,examples目中中的api目录拷贝到ci的根目录,include拷贝到uc_client目录。
5、修改ci根目录api目录中的uc.php,将30行至79行替换成如下代码
PHP复制代码
 
if(!defined('IN_UC')) {
 
        error_reporting(0);
        set_magic_quotes_runtime(0);
       
        defined('MAGIC_QUOTES_GPC') || define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());
        require_once DISCUZ_ROOT.'application/config/ucenter.php';
       
        $_DCACHE = $get = $post = array();
       
        $code = @$_GET['code'];        
        parse_str(_authcode($code, 'DECODE', UC_KEY), $get);    
        if(MAGIC_QUOTES_GPC) {
                $get = _stripslashes($get);
        }
       
        $timestamp = time();
        if($timestamp - $get['time'] > 3600) {
                exit('Authracation has expiried');
        }
        if(empty($get)) {
                exit('Invalid Request');
        }
        $action = $get['action'];
       
        require_once DISCUZ_ROOT.'./uc_client/lib/xml.class.php';
        $post = xml_unserialize(file_get_contents('php://input'));
       
        if(in_array($get['action'], array('test', 'deleteuser', 'renameuser', 'gettag', 'synlogin', 'synlogout', 'updatepw', 'updatebadwords', 'updatehosts', 'updateapps', 'updateclient', 'updatecredit', 'getcredit', 'getcreditsettings', 'updatecreditsettings', 'addfeed'))) {
                $uc_note = new uc_note();
                echo $uc_note->$get['action']($get, $post); exit();
                } else {
                exit(API_RETURN_FAILED);
        }
//note include 通知方式
} else {
        exit();
        }
 
复制代码


在ucenter里面刷新下应用是不是通信成功了,具体原因别问我,我也是刚弄好,还没细看,应该是ucenter默认的应用连接都是数据库,被去掉的那几行只是不验证数据库而已,在详细的我还没试,后面等把代码写完了在做测试。

另外,谁有可用的详细的整合第三方登录的接口吗?谁有共享下。

本版积分规则