discuz不能同步登陆ecmall的解决办法
2024-07-09 22:56:40
供稿:网友
由于看到很多用户反应ecmall整合discuz后无法同步的问题不少
这次发帖说明一下
有兴趣的同学可以跟我一起做一个试验。
试验目的
通过试验查找无法同步的原因
试验材料
1.ECMall2.2.1安装包一份。
2.discuz7.2安装包一份
3.ucenter1.5.1安装包一份
4.ucenter home2.0安装包一份
以上材料编码均使用UTF-8(你也可以用其他编码做试验)。
试验步骤
1.安装ucenter
下载地址我就不一一贴出了,大家去discuz.net官方下载,安装文件在upload目录
2.安装discuz7.2
打开discuz安装包,进uc_client/client.php看看ucenter的版本:发现是1.5.0的,比我们下载的ucenter安装包的版本低。所以这个uc_client目录要换掉。我们可以从ucenter1.5.1安装包里提取uc_client,即把安装包里advance目录下的uc_client目录复制到discuz安装目录下替换掉原装的那份,进行安装
3.安装ECMall
将ecmall安装包里的upload目录里的所有内容复制到要安装的目录下,同样复制包里的uc_client目录、integrate目录目录进行安装,最后整合成功了。OK
4.测试一下是否能同步登陆。
a.用管理员用户先登录ecmall,然后访问之前安装的discuz,这时你应该发现管理员用户在discuz上已经登录了。
现在测试
b.现在再测试反向同步登陆。即论坛登录是否能让ecmall也同步登陆。
先退出ecmall,访问discuz,用管理员用户登录。这时你应该发现还是游客状态。
问题暴露出来了。这应该就是大家最多遇到的问题。当然可能因为你安装时目录权限、安装方法等其他特殊因素的影响,你可能还有其他很多古怪的问题。
我们先了解这个最常见到的问题吧。
如何解决。说真的,我是猜想的。去discuz后台更新缓存试试。
更新后重复执行步骤4。测试结果。双向同步登陆正常了。
到现在为止你可能还不清楚到底哪里出了问题
那现在接下来继续试验。
5.为避免之前数据的干扰,先删除网站里面所有文件和目录,执行步骤1、2安装ucenter和discuz,第三步我们换成ucenter home,这个版本的ucenter home的uc_client依然是1.5.0的,版本低了,按上面提到的方法换成1.5.1。执行安装。
6.现在来测试同步是否正常
按照步骤4的方法进行测试。这时你应该会发现同样是那个问题。登陆论坛后无法同步到ucenter home,更新论坛缓存后发现正常了。
从以上的试验大致可以推断应该是dz缓存没有更新造成的。
经过查看论坛forumdata/cache/cache_settings.php文件里找到一个缓存项allowsynlogin,当我们安装论坛时,这个项的值默认是0,整合ecmall、uc_home后这个值依然不变,而当再论坛后台更新缓存后,这个值变成1了。这时两个应用同步登陆成功了。
因此可以推断这个设置是打通从论坛向其他应用同步登陆的通道。但是目前我没有找到论坛后台有任何设置“是否同步登陆到其他应用”,这应是今后版本的伏笔吧。请大家不要跟ucenter后台应用设置里的同步登陆到该应用向混淆,意义不一样,是反方向。而ecmall没有设置这样一个关卡来阻止同步到其他应用。所以通过ecmall同步登陆到其他应用一般都是能成功的。
如果看了这篇文章能解决问题当然最好,如果无法解决。只能再研究了。毕竟这是几个产品协调的问题。我们只能保证ecmall稳定和正常使用。