几乎每个应用在整合UC的时候都会遇到无法同步登陆同步退出的情况,今天分析下原因

首先我们的项目会将uc_client这个文件夹原封不动的拷贝到项目根目录,

public function inteLogin($loginname,$password) {
$this->_initUC();
if (true === $this->uc_Integration) {
if (true === XValid::isEmail($loginname)) {
$logintype = 2;
}
else {
$logintype = 0;
}
if (UC_CHARSET != OESOFT_CHARSET) {
$uc_loginname = XHandle::utfToGbk($loginname);
}
else {
$uc_loginname = $loginname;
}
$this->ucinfo = uc_user_login($uc_loginname,$password,$logintype,0);
if ($this->ucinfo[0] >0) {
//同步登陆
//print_r($this->ucinfo);
echo uc_user_synlogin($this->ucinfo[0]);

//如下是登陆本系统的逻辑
$this->_loginUcToLove($password);
}
}
}
我只截取了一段代码,代码是先调用client.php的uc_user_login方法,然后判断返回的uid是否存在,存在的话就echo uc_user_synlogin($this->ucinfo[0]);这样就实现了同步登陆。但是你也许会遇到一个问题,就是还是无法同步登陆,我们看代码

function uc_user_synlogin($uid) {
    $uid = intval($uid);
    if(@include UC_ROOT.'./data/cache/apps.php') {
        if(count($_CACHE['apps']) > 1) {
            $return = uc_api_post('user', 'synlogin', array('uid'=>$uid));
        } else {
            $return = '';
        }
    }
    return $return;
}

发现count($_CACHE['apps']) > 1,也就是在apps.php中的apps数组必须大于1才会调佣,否则不调用,这里我们需要注意的是你的应用里面如果是在建立之前拷贝的uc_client代码,则这个不会大于1,没关系,我们拷贝过去就行了。apps.php

同步退出也是同理的,因为他这个是发送js实现同步退出,因此

public function inteLogout() {
$this->_initUC();
if (true === $this->uc_Integration) {
echo uc_user_synlogout();
}
}

也要记得上面是echo,而不是Return

我们在做应用开发的时候,包含了两个文件,一个当然是配置文件了,不管你是在后台填写的还是直接写到文件中的,包含进来就行了,然后就是client.php,client.php是处理程式。

本文档的代码引用的action.passport.php以及model.uc.php中的代码如需完整的,打开他们来看下就知道了

uc同步登陆同步退出相关推荐

  1. uc显示无服务器连接,ucenter安装心得和通信失败,同步登陆失败采坑以及解决方法...

    不墨迹,直接说重点:(配置了uc的网站不要再去采集了,否则uid不一致,新用户永远无法同步登录了) 下载系统后留意文件夹里是否带了uc的源码 api是接口文件夹,uc_client是uc的客户端文件, ...

  2. Thinkphp整合ucenter同步登录注册退出

    Thinkphp整合ucenter完全可以双向同步登陆.退出.删用户.自动激活DZX用户.发消失.推动态.改密码等的. ucente同步登陆演试,比如把下面的代码放到你网站的登陆控制器里 $uc = ...

  3. 多DZ和UC同步登陆状态(支持HTTPS,PHP7.4.3)

    前端时间一个QQ上找到我的朋友求助在HTTPS下实现用户在多个DZ同步退出登陆状态,我摸索了一下 整理出了修改方法. 2020年3月16日更新: 本文发布一年了,最近有朋友反应使用最新版的DZ(Dis ...

  4. TP+UC+DZ同步登陆问题汇总

    TP为主站,用户在此注册,注册信息主要是用户名和密码,原样传至UC即可,UC会自动加密,加密算法为md5(md5($passwd).$salt); 登陆时,倘若UC查到用户信息且信息正确,会返回一个$ ...

  5. php同步登陆方案,ucenter同步登陆机制_PHP教程

    做php开发的朋友大都知道有个ucenter可以用来实现多个站点同时登陆同时退出,用户同步的功能.下面作者将要就ucenter是如何实现同步登陆的和大家做一下分享. 首先站点都要引入一个uc_clie ...

  6. UCenter实现同步登陆原理

    UCenter实现同步登陆原理 1.用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验 ...

  7. 本地会员与新浪微博api绑定和同步登陆

    说明:此设计仅为我个人简单的制作.没有考虑安全因素.bug.效率等.仅限于学习本地会员同步新浪微博登陆. 附:伸手党可到csdn资源下载源码.包含源码文件.数据库文件以及使用方法 csdn资源下载网址 ...

  8. uc_client 同步登陆

    uc_client 同步登陆 uc_user_synlogout() 该函数 生成了一段js 页面执行时起效果 若直接跳转则不能实现同步登陆

  9. php同步登陆方案,网站与phpwind论坛的同步登陆的解决方案

    1.先开通 phpwind 的通行证 2.在通行证设定的访问入口的后台程序里添加如下代码: //pw = phpwind 的安装前缀 //判断pw中是否有该会员数据 $SQL = "sele ...

最新文章

  1. 理解与使用Javascript中的回调函数
  2. linux问答学知识
  3. 如何写出一份惊艳BAT的简历?
  4. 权限框架 - shiro 简单入门实例
  5. SAP Fiori INTEROP tile cache
  6. linux find查找文件然后删除,linu查找find命令及删除7天前的文件
  7. [解决]电信彩信网关开发错误-SOAP_VERSIONMISMATCH
  8. 区域卫生数据用于临床疗效分析的可用性研究
  9. 前端基础-html-表格的标题和表头单元格标签
  10. 学java需要学c语言吗?
  11. Ubuntu中使用dnw工具:没有找到/dev/secbulk0
  12. Dell T630,插一个显示器,设置中看到两个显示器
  13. 屏幕录制 gif android,分享 Android 手机屏幕录制并制玉成 GIF 演示图片
  14. 共享软件业余者VS共享软件专业者
  15. 分布式 | BenchmarkSQL 压测 dble 性能调优指南
  16. LZW压缩(解压缩)算法详解及源码
  17. python(六)动态网页爬虫
  18. 【详细教程】App inventor连接阿里云平台(APP显示STM32发来的温湿度数据等)
  19. 虚拟机怎么安装geany_75 个最常用的 Linux 应用程序(2018 年)
  20. 11个经典物联网应用电路方案优选合辑

热门文章

  1. 基于Oracle的SQL优化--学习(九)
  2. mysql语句更新顺序_MySQL的Update语句Set顺序问题
  3. uniapp中根据URL链接生成二维码(适用所有Javascript运行环境的前端应用),保存二维码到本地相册。
  4. excel插入页码_当EXCEL遇上PPT 学做抢手人气王
  5. 网络系统高可用是几个9?
  6. h5页面在新版微信iOS 端出现底部白色导航条
  7. 最适合深夜失眠听的歌,听了最容易入睡的歌曲推荐
  8. URI URL区别及转换
  9. leaflet实现风场流动
  10. “大数据杀熟”杀的是你吗?