Discuz设置Ucenter同步登录不成功

解决办法

1、检查 UCenter 后台各应用的通信是否成功。

 

2、检查确定 UCenter 里各个应用中的“是否开启同步登录:”需选择“是”。

 

3、检查各应用的 cookiepre,不能设置为一样的,也就是每个应用的 cookiepre 值都要设置为不同的。

 

4、请检查下 UCenter Home 的 config.php 文件里面的 UCenter 参数设置是否正确,导致 UCenter Home 连接不上 UCenter。

可以登陆 UCenter 后台 => 应用管理 => 编辑 UCenter Home 这个应用,将里面最下面应用的 UCenter 配置信息复制一份,将 UCenter Home 的 config.php 里面的对应信息替换下。

 

 

5、其它应用同理,也是检查应用的配置文件里 UCenter 参数设置是否正确,操作步骤同上。

6、对于编码为 utf8 的用户,注意检查自己的 config 文件有没有修改过编码,默认的编码是 ansi 编码,而不是 utf8 编码。如果修改过 config 文件有 utf8 编码,则会出现 UCenter 通信不成功导致的无法登录情况。

7、如果用户在论坛或其他应用注册,新用户第一次登陆 UCenter Home 或其他应用时,需要手动登陆一次,以后可以同步登陆。

8、Discuz!7.0.0 无法和其他应用同步登陆

打开 global.func.php,找到

$show_message = str_replace("'", "'", strip_tags($show_message));

替换为:

$show_message = str_replace("'", "'", $show_message);

如果还不行

Discuz!7.0.0 正式版在头部不能显示空间的连接,前提是同一个 UCenter 下安装了UCenter Home 了。

打开 ./include/cache.func.php

找到

if(@include(DISCUZ_ROOT.'./uc_client/data/cache/apps.php') && is_array($_CACHE['apps'])) {

替换为

@include(DISCUZ_ROOT.'./uc_client/data/cache/apps.php');

if(is_array($_CACHE['apps'])) {

9、到应用的配置文件中,修改 'UC_IP' 地址为你服务器的 IP 地址。

以前的是

define('UC_IP', '127.0.0.1);

改成

define('UC_IP', '69.89.31.213');

 

修改之后一切正常,可以同步。

解释:127.0.0.1 是因为有的服务器不支持自己访问自己造成的,很多虚拟主机都有这问题。

10、如果在论坛后台 => 全局 => 注册与访问 => 设置邀请注册 和 Email 验证注册的话 ,在其他应用注册的用户,在那个应用登陆后访问论坛会处于未登陆状态,建议先关闭这个设置。

总结一下方法

一、首先,登录 UCenter 后台,应用管理,确保该应用与 UCenter 通信成功。如果通信不成功,可以参考以下步骤检查下:

1、在 UCenter 后台,应用管理,编辑,接口 URL,检查这个地址是否正确。

2、应用 IP:这里正常情况下留空即可。如果由于域名解析问题导致 UCenter 与该应用通信失败,请尝试设置为该应用所在服务器的 IP 地址。

3、通信密钥:这里的通信密钥要和各个应用中 config 配置文件里的 define('UC_KEY', ) 中设置的数字对应。

4、检查 UCenter 后台,应用管理,编辑,ID 值是不是和该应用 config 配置文件里的 define('UC_APPID', ) 的值相同。

5、如果始终无法同步,请检查config配置文件编码是否为默认ANSI格式 或 删除各应用重新建立

二、登录 UCenter 后台,应用管理,编辑各个应用,确保“是否开启同步登录”,选择的“是”。

三、检查各个应用 config 文件中的 cookie,不要设置为一样的。

四、确保各个应用中 config 文件设置的参数(通信密钥/接口 URL)要和 UCenter 后台应用管理中各个参数设置相同。

下面看一个我配置uc与dedecms的例子

方法如下:
整合的过程我就不说了, 不会的朋友可以百度或是谷歌一下,整合教程满天飞舞。
实现双同步登入或是登出的方法:

打开UCENTER后台,选择应用,选择DISCUZ,首先看UCENTER和DISCUZ,UCENTER和DEDE的通信是否正常,如果正常的话复制下 UCENTER和DISCUZ的通信密钥。或是在通信正常的情况下打开DISCUZ的后台站长中的UCENTER设置,复制其中的通信密钥。(如果通信整常,这两个密钥是一样的。否则通信也不会成功)
[font=][font=]然后通过FTP下载DISCUZ安装目录下的CONFIG目录中的config_ucenter_default.php文件,修改第22行
[font=]define('UC_KEY', '把你刚才复制的通信密钥粘帖到这里'); // 与 UCenter 的通信密钥, 要与 UCenter 保持一致
保存后再上传回去复盖原文件。
前提:必须UCENTER和DISCUZ,UCENTER和DEDE都通信成功,这个在UCENTER的应用中可以看到,一般整合成功后通信状态都是成功的。
dede通信文件是在目录:include/common.inc.php

修改完后,在DEDE登入,那么DISCUZ中也会登入,如果在DEDE退出,那么在DISCUZ中也会退出
                  在DISCUZ中登入,那么在DEDE中也全登入,在DISCUZ中登出,在dede中也会登出。

时间: 2024-10-30 14:31:54

Discuz设置Ucenter同步登录不成功的相关文章

关于ucenter同步登陆退出问题

问题描述 关于ucenter同步登陆退出问题 ucenter整合的时候,同步登录必须输出echo uc_user_synlogin($uid):才可以实现同步登陆. 现在由于登录界面是用ajax方式进行的,所以无法直接输出,如果直接输出了,页面就显示一段js代码.该怎么处理这里?用什么方式解决这个同步问题. 请高手指点一下 解决方案 Ucenter的同步登陆与同步退出ucenter同步登录与同步退出

discuz论坛整合ucenter免激活,同步登录,同步退出解决方案

一.discuzX1.5免激活修改步骤: 1. 注册完成插入数据库后,进行同步登录 修改文件  代码如下 复制代码 uploadsourcemodulemembermember_register.php $_G['setting']['lastmember'] = $username;      save_syscache('setting', $_G['setting']);      $_G['setting']['regverify'] = $regverify;      $ucsynl

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

1.用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证. 2.如果验证成功,将调用位于uc_client下client.php文件中的函数uc_user_synlogin,在这个函数中调用 uc_api_post('user', 'synlogin', array('uid'=>$uid)). 3.然后这个函数后向Ucenter的index.php传递数据,index.php接受传

java(jsp)整合discuz同步登录功能详解

 jsp整合discuz同步登录功能详解,Uenter是Comsenz旗下各个产品之间信息直接传递的一个桥梁,通过UCenter站长可以无缝整合Comsenz系列产品,Center拥有机制完善的接口,经过简单修改便可以挂接其它任何平台的第三方的网络应用程序 最近做了一个资源库系统的项目,老师说可以搭建开源论坛替代自己开发社交模块,正好在开源中国上看到了一个利用discuz的UCenter功能实现同步登录的开源项目(https://code.google.com/p/discuz-ucenter-

java(jsp)整合discuz同步登录功能详解_JSP编程

最近做了一个资源库系统的项目,老师说可以搭建开源论坛替代自己开发社交模块,正好在开源中国上看到了一个利用discuz的UCenter功能实现同步登录的开源项目(https://code.google.com/p/discuz-ucenter-api-for-java/),不禁大喜,于是花了几个小时照着教程操作了一遍,居然很轻松的成功了,特写此文以做纪念.. Uenter是Comsenz旗下各个产品之间信息直接传递的一个桥梁,通过UCenter站长可以无缝整合Comsenz系列产品,实现用户的一站

UCenter单点登录/同步登录/同步登出实例

UCenter同步流程: 前提是需要在Ucenter上面添加好需要同步登录的应用(至少2个才能看到效果),并且显示:通信成功 假如我添加了A,B两个应用网站 1.首先当A站登录时,登录成功后,处理实质是调用uc_client提供的方法向UCenter获取2个脚本代码(A.B站),这两个脚本代码就是访问A.B两个站的api/uc.php中的登录方法,可以在方法中做登录所需session和cookie操作. 2.当登出时,操作和登录是一样的,都需要向UCenter获取2个脚本代码,目的是用来触发A.

DiscuzToolkit适用于discuz X2.5进行同步登录及退出吗,还是只用于Discuz!NT系列

问题描述 DiscuzToolkit适用于discuzX2.5进行同步登录及退出吗,还是只用于Discuz!NT系列 解决方案

Discuz x3.2设置QQ直接登录成为会员不再完善信息

Discuz x3.2的管理中心 这里部落先说一下,前面说到过的问题,如果您刚好和部落一样,在用户组里设置了只允许QQ登录的话,那么如果您没有绑定QQ,就只能通过Discuz x3.2的管理中心来登录解除了,我们直接输入域名/admin.php就可以实现了. Discuz x3.2设置QQ直接登录成为会员不再完善信息 好了,接下来,我们来看看如何在Discuz x3.2设置QQ直接登录成为会员不再完善信息,我们直接登录到您的管理中心,在"应用"菜单下找到QQ互联,如下图: 启用这个插件

PHPwind整合最土系统用户同步登录实现方法

上次成功升级了最土商业版,接下来就是整合公司的社区网站,先说明一下我现在工作的地方是个地方社区网站,用的基础程序是PHPWind,我的任务就是让PHPWind和最土登录同步,领导也知道我的技术能力有限,不怎么高要求,所以让我先实现,再考虑其他.赶鸭子上架,开工了. 在我未成熟的程序思考能力下,我首先否定了重写程序这个方法,再次否定了将PHPWind的验证方法引入到最土的方法,最后想出一个折中的办法,将两张表的唯一ID相同:将PHPWind用户表设为主表,最土用户表为外接表,让最土用户ID和PHP