当前位置: 代码迷 >> 综合 >> phpcms+ucenter+discuz论坛整合教程
  详细解决方案

phpcms+ucenter+discuz论坛整合教程

热度:0   发布时间:2024-01-12 14:20:14.0

在 UCenter 系统下的各 Comsenz 产品均可以实现同步登录、同步退出,如何设置同步登录可参考教程

设置UCenter下各应用同步登录
Comsenz 同时发布了 UCenter、UCenter Home、Discuz!、SupeV、ECShop、SupeSite 等多个产品,各个产品可以通过 UCenter 实现会员信息的整合,通过简单的设置也可以达到同步登录退出。

设置步骤如下:

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

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

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

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

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

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

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

四、确保各个应用中 config 文件设置的参数(通信密钥/接口 URL)要和 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 里面的对应信息替换下。


小猪CMS(PigCms)微信营销源码
还在做微信代理?不如自己搭建平台! 全国发售源码 国内外均有使用 PigCms

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 验证注册的话 ,在其他应用注册的用户,在那个应用登陆后访问论坛会处于未登陆状态,建议先关闭这个设置。


  相关解决方案