解决办法
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中也会登出。