discuz Ucenter第三方双向同步登录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了discuz Ucenter第三方双向同步登录相关的知识,希望对你有一定的参考价值。

今天按照官网的例子

把ucenter弄下来了,直接用官网的例子,用户注册登录的什么都好使。就是不不能同步登录。

 

研究了好久才发现  Ucenter_client的注册用户只增加在 pre_ucenter_members 表的的,所以你用ucenter的登录接口可以登录成功,但是 .$ucsynlogin  这个是返回空的,正常应该返回一串javascript来设置cookies,这样discuz也就自动同步登录的。

用接口注册的用户,你去discuz用户管理哪里是看不到的,这个时候新增一个同名的却发现用户已经存在了,提示激活即可。一点激活了,再看看  $ucsynlogin ,丫的这个时候才有代码返回了。。。

 

所以在第三方应用同步用户的页面

uc_client\model\user.php 的 add_user 函数 的return前增加以下这个激活用户的语句

//begin
$this->db->query("INSERT INTO `discuz_x2`.discuz_common_member SET uid=‘$uid‘, username=‘$username‘, password=‘$password‘, email=‘$email‘, adminid=‘0‘, groupid=‘10‘, regdate=‘".$this->base->time."‘, credits=‘0‘, timeoffset=‘9999‘");
$this->db->query("INSERT INTO `discuz_x2`.discuz_common_member_status SET uid=‘$uid‘, regip=‘$regip‘, lastip=‘$regip‘, lastvisit=‘".$this->base->time."‘, lastactivity=‘".$this->base->time."‘, lastpost=‘0‘, lastsendmail=‘0‘");
$this->db->query("INSERT INTO `discuz_x2`.discuz_common_member_profile SET uid=‘$uid‘");
$this->db->query("INSERT INTO `discuz_x2`.discuz_common_member_field_forum SET uid=‘$uid‘");
$this->db->query("INSERT INTO `discuz_x2`.discuz_common_member_field_home SET uid=‘$uid‘");
$this->db->query("INSERT INTO `discuz_x2`.discuz_common_member_count SET uid=‘$uid‘, extcredits1=‘0‘, extcredits2=‘0‘, extcredits3=‘0‘, extcredits4=‘0‘, extcredits5=‘0‘, extcredits6=‘0‘, extcredits7=‘0‘, extcredits8=‘0‘");
//end

  

以上是关于discuz Ucenter第三方双向同步登录的主要内容,如果未能解决你的问题,请参考以下文章

基于UCenter关联第三方网站与Discuz用户

Ucenter添加新应用

ucenter 整合同步登录的内部实现原理及thinkphp整合ucenter

简单分析ucenter 会员同步登录通信原理

org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。

怎么可以让2个discuz x3.0论坛的会员可以通用!