一 ,discuz ecshop  两边登陆都可以同步登陆到另一程序上,但退出则无法实现同步登陆。顺着 Ecshop 的退出流程,顺藤摸瓜找到了 lib_common.php 文件中的 uc_call 这个方法。这个方法的第二个参数 $params 的默认值是 null。而 Ecshop 注销时只传了调用 uc_client 中同步退出方法名做为一个参数的值,第二个参数使用的是默认值。而这个方法中通过 call_user_func_array($func, $params); 来调用对应的方法,问题就在这,第二个 $params 参数如果是 null 则 call_user_func_array 执行失败。解决办法很简单,修改 Ecshop 里 lib_common.php 中 function uc_call($func, $params=null) 这一行改成 function uc_call($func, $params=array()) 即可。

 
二,
   http://域名/ ecshop ,http://域名/bbs/ 为论坛dzX2, 那么,在ec登陆后,dzX2 点退出, 
会发送一个javascript申请到 /api/uc.php的 logout请求 ( 如果setcookie 只是在 /bbs/ 下 设置cookie 为空,那么就清空不了cookie 
严格的应该是 
setcookie('ECS[user_id]', '', $time,$GLOBALS['cookie_path'], $GLOBALS['cookie_domain']); 
ecshop  文件 /api/uc.php 搜索 set_cookie
  1. if (empty($user_id))
  2. {
  3. /* 摧毁cookie */
  4. $time = time() - 3600;
  5. setcookie('ECS[user_id]',  '', $time); 这里要改
  6. setcookie('ECS[username]', '', $time);这里要改
  7. setcookie('ECS[email]',    '', $time);                 这里要改
  8. }
  9. else
  10. {
  11. /* 设置cookie */
  12. $time = time() + 3600 * 24 * 30;
  13. setcookie("ECS[user_id]",  $user_id,   $time, $GLOBALS['cookie_path'], $GLOBALS['cookie_domain']);
  14. setcookie("ECS[username]", $user_name, $time, $GLOBALS['cookie_path'], $GLOBALS['cookie_domain']);
  15. setcookie("ECS[email]",    $email,     $time, $GLOBALS['cookie_path'], $GLOBALS['cookie_domain']);
  16. }

复制代码

将上面要改的 改为

  1. setcookie('ECS[user_id]', '', $time,$GLOBALS['cookie_path'], $GLOBALS['cookie_domain']);
  2. setcookie('ECS[username]', '', $time,$GLOBALS['cookie_path'], $GLOBALS['cookie_domain']);
  3. setcookie('ECS[email]', '', $time,$GLOBALS['cookie_path'], $GLOBALS['cookie_domain']);
 
 
 
其中在本地windows环境中,需要在config.php中配置cookie作用域(path)

ucenter 单点登录,终极版的更多相关文章

  1. ucenter单点登录

    首先我们先来了解下Ucenter登录步骤 1.用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和passwo ...

  2. 单点登录SSO+鉴权

    一.单点登录原理 1.登录 2.注销 --------------------------------------------------------------------------------- ...

  3. ucenter的单点登录

    所谓单点登录,无非就是几个站点共用一个用户中心,实现同步登陆,同步退出. 服务器端:Loog SSO . 客服端: ucenter,说实话dz商业化确实让php发展了不少. ucenter 基本原理: ...

  4. java和Discuz论坛实现单点登录,通过Ucenter(用户管理中心)

    标题有点问题,没有进行修改. 一 Discuz论坛搭建步骤 1:服务器环境配置 服务器要支持php语言+支持mysql 5.0以上的数据库 + Apache服务器(支持网站的一个服务器,通过域名的能访 ...

  5. UCenter在JAVA项目中实现的单点登录应用实例

    Comsenz(康盛)的UCenter当前在国内的单点登录领域占据绝对份额,其完整的产品线令UCenter成为了账号集成方面事实上的标准. 基于UCenter,可以将Comsenz旗下的Discuz! ...

  6. cas sso单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析

    转:http://blog.csdn.net/ae6623/article/details/8848107 1)PPT流程图:ppt下载:http://pan.baidu.com/s/1o7KIlom ...

  7. SSO单点登录PHP简单版

    前面做了一个新项目,需要用户资源可以需要共享.由于之前没有做过这样的东西,回家之后,立马网站百度"单点登录".帖子很多,甄别之后,这里列几篇认为比较有营养. http://blog ...

  8. SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析

    落雨 cas 单点登录 一.用户第一次访问web1应用. ps:上图少画了一条线,那一条线,应该再返回来一条,然后再到server端,画少了一步...谢谢提醒.而且,重定向肯定是从浏览器过去的.我写的 ...

  9. SpringBootSecurity学习(26)前后端分离版之github单点登录

    单点登录(SSO) 关于oauth2.0,最后我们再来学习一下单点登录.前面介绍过单点登录的定义,单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一. ...

随机推荐

  1. smartGWT DataSource数据动态加载

    昨天和今天早上,用DataSource从数据库后台动态加载数据,我的业务是这样的: 我有两个SelectItem选择框,第一个选择框里面的数据是单位,第二个选择框中的数据是对应单位的人,因为人可能有重 ...

  2. 性能调优之Java系统级性能监控及优化

    性能调优之Java系统级性能监控及优化   对于性能调优而言,通常我们需要经过以下三个步骤:1,性能监控:2,性能剖析:3,性能调优 性能调优:通过分析影响Application性能问题根源,进行优化 ...

  3. 转接口IC NCS8807:LVDS转MINI LVDS芯片

    LVDS 4K TCON w/ Scaler1 General Description    NCS8807 is an LVDS 4K TCON with advanced scaling func ...

  4. MYSQL中 ENUM 类型的详细解释

    ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举. 在下列某些情况下,值也可以是空串("") 或 NULL: 如果将一个无效值插 ...

  5. JavaWeb总结(十)—文件上传和下载

    一.文件的上传 1.文件的基本上传 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择 ...

  6. c#FTP操作类,包含上传,下载,删除,获取FTP文件列表文件夹等Hhelp类

    有些时间没发表文章了,之前用到过,这是我总结出来关于ftp相关操作一些方法,网上也有很多,但是没有那么全面,我的这些仅供参考和借鉴,希望能够帮助到大家,代码和相关引用我都复制粘贴出来了,希望大家喜欢 ...

  7. org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be cast to org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection

    转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6709758.html Android Studio导入项目报错: org.gradle.api.inter ...

  8. netcore实践:跨平台动态加载native组件

    缘起netcore框架下实现基于zmq的应用. 在.net framework时代,我们进行zmq开发由很多的选择,比较常用的有clrzmq4和NetMQ. 其中clrzmq是基于libzmq的Int ...

  9. eclipse中AndroidA工程依赖B工程设置

    假设library为B工程,而SlideMenuTest为A工程,且SlideMenuTest需要依赖library工程(减少jar包形式的修改麻烦). 需要简单的设置即可. 1.B工程设置为libr ...

  10. js 时间时间戳互换

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...