ThinkPHP与Discuz通过Ucenter同步登录过程记录

  1. 下载discuz源码并,以及附件中的api.zip,ThinkphpUcenter.zip文件,将源码与ThinkPHP框架部署如下:
Paste_Image.png

按照上图部署完项目目录后进入下一步,关于config.inc.php文件在此先不用关心,在安装完成discuz并在ucenter中添加了应用之后便可得到此文件中的代码。
2.安装discuz论坛 http://yourhost/discuz/install
3.安装完成后进入管理中心若提示:Please delete install/index.php via FTP! 需将/discuz/install/install.php 删除或改名称
之后进入Ucenter点击应用管理添加应用。应用配置如下图

Paste_Image.png

填写完成后提交,会在提交按钮下方出现配置代码:

Paste_Image.png

将些部分代码复制到config.inc.php文件中保存,至此在Ucenter应用管理列表中的该应用通讯状态应为通讯成功。

  1. 回到项目目录,在ThinkPHP应用的配置文件config.php中添加数组元素“'AUTH_KEY' => 'xxxxx”;值在Discuz配置文件目录config下的config_global.php文件中的$_config['security']['authkey']的值。
  2. 修改Ucenter与ThinkPHP冲突的类名
    (1)/uc_client/model/base.php 将类名改为uc_base (只需更改类名不需更改文件名)
    (2)将/uc_client/control/下的所有继承base类的文件改为继承uc_base
    (3)检查/uc_client/lib/db.class.php 类名是否为 ucclient_db,若为db则需更改为ucclient_db
  3. 配置双向登录
    创建BaseController.class.php 文件,使所有Controller都继承自BaseController,BaseController.class.php代码如下
    protected function _initialize()
    {
        if (checkLogin()) {
            $this->autologin();
        }
    }
    public function autologin()
    {
        if (isset($_COOKIE['8asp_2132_auth']) && !empty($_COOKIE['8asp_2132_auth'])) {
            Vendor('ThinkphpUcenter.UcApi');//载入UcApi扩展
            $key = md5(C('AUTH_KEY') . $_COOKIE['8asp_2132_saltkey']);//获取在本应用的配置文件config.php中的解密钥匙
            $userMsg = explode("\t", uc_authcode($_COOKIE['8asp_2132_auth'], 'DECODE', $key)); //得到加了密的password【$userMsg[0]】和uid【$userMsg[1]】
            $userInfo = uc_get_user($userMsg[1], 1);//通过uid获取username
            $_SESSION['user_id'] = $userMsg[1];
            $_SESSION['username'] = $userInfo[1];
            $_SESSION['email'] = $userInfo[2];
            $member = D('member')->where('user_name ="' . $userInfo[1] . '"')->find();
            session('member', $member);
        } else {
            //do something
        }
    }

其中$_COOKIE['8asp_2132_auth']中的8asp可通过dump($_COOKIE);来获取将此代码段中的四处$_COOKIE['XXXX_2132_XXXX']替换为dump出的前缀。完成后在项目登录方法中登录验证成功后添加如下代码

                vendor('ThinkphpUcenter.UcApi');
                $login = UcApi::login($member['user_name'],$pass);
                if (!$login){
                    $this->error('同步登录失败','/Index/index');
                }
                echo $login['synlogin'];//这一步一定添加,此处输出的为同步登录的js代码,若使用ajax传值此处应别做处理

退出登录时在退出成功后调用以下代码

    vendor('ThinkphpUcenter.UcApi');
    echo UcApi::logout();//输出同步登出的代码 与登录时类似

7.项目注册后论坛同步用户信息

在项目网站注册时需同时向以下数据表插入用户数据
common_member、common_member_status、common_member_profile、common_member_field_forum、common_member_field_home、common_member_account等以保证用户被激活,注意哪些字段不能为空。
8.论坛注册后同步到用户信息
与第7条类似,在discuz注册方法中将用户信息添加到项目网站相关数据表即可(对discuz了解较少,未实现)

附件一:api.zip 链接: http://pan.baidu.com/s/1slF2GjV 密码: dz6e
附件二:ThinkPHPUcenter.zip链接: http://pan.baidu.com/s/1nvCnhmL 密码: in63

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,302评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,232评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,337评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,977评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,920评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,194评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,638评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,319评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,455评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,379评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,426评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,106评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,696评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,786评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,996评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,467评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,043评论 2 341

推荐阅读更多精彩内容