Thinkphp整合ucenter完全可以双向同步登陆、退出、删用户、自动激活DZX用户、发消失、推动态、改密码等的。
ucente同步登陆演试,比如把下面的代码放到你网站的登陆控制器里
$uc = new \Ucenter\Client\UcApi(); 
$uc_user = $uc->uc_get_user($user['username'], 0); //根据用户名检查用户是否存在 
if ($uc_user['0'] > 0) { 
$uc_uid = $uc_user['0']; //记录用户uid 
} else { 
$uc_uid = $uc->uc_user_register($user['username'], '12345678', $user['email'] ? $user['email'] : $uid . '@qq.com'); //注册用户 

if ($uc_uid > 0) { 
echo $uc->uc_user_synlogin($uc_uid); //同步登陆;一定要输出这段代码,你可以跳转时输出$this->success($uc->uc_user_synlogin($uc_uid)); 
} else { 
//todo 错误自己写 
}

/*ucente同步退出演试,比如把下面的代码放到你网站的退出控制器里*/ 
$uc = new \Ucenter\Client\UcApi(); 
echo $uc->uc_user_synlogout(); //同步退出;一定要输出这段代码,你可以跳转时输出$this->success($uc->uc_user_synlogout());

++++++++++++++++++++++++++++++++++++++++++++++其它应用同步登陆、同步退出到本应用+++++++++++++++++++++++++++++++++++++++++++ 
手册地址:http://faq.comsenz.com/library/UCenter/api/api_index.htm 
原理:其它应用登陆、退出、发消息等,都会触发本应用Ucenter\Controller\ApiController.class.php里相应的事件函数,所以你只需要在这个文件里添加你要登陆、退出到本应用的代码就可以了 
比如其它应用登陆时,会触发ApiController.class.php里的synlogin函数,同时会将其它应用的UID和用户名都传过来

//里面的函数如下 
private function synlogin($get, $post) { 
$uid = intval($get['uid']); 
$username = $get['username']; 
//自己根据UID或用户名处理注册,登陆本应用 
}
DZX自动激活方法.txt
打开discuz/api/uc.php,然后找到:
if (($member = getuserbyuid($uid, 1))) { 
dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime); 
}
将上面的代码改为:
if (($member = getuserbyuid($uid, 1))) { 
dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime); 
} else { 
if (!function_exists('uc_get_user')) { 
loaducenter(); 
}

$user = uc_get_user($uid, 1); 
if ($user) { 
$time = time(); 
DB::query("REPLACE INTO " . DB::table('common_member') . " SET `uid`='{$user[0]}' , `username`='{$user[1]}' , `password`='" . md5(random(10)) . "' , `email`='{$user[2]}' , `adminid`='0' , `groupid`='10' , `regdate`='{$time}' , `emailstatus`='0' , `credits`='0' , `timeoffset`='9999'"); 
DB::query("REPLACE INTO " . DB::table('common_member_status') . " SET `uid`='{$user[0]}' , `regip`='{$_G['clientip']}' , `lastip`='{$_G['clientip']}' , `lastvisit`='{$time}' , `lastactivity`='' , `lastpost`='0' , `lastsendmail`='0'"); 
DB::query("REPLACE INTO " . DB::table('common_member_count') . " SET `uid`='{$user[0]}' , `extcredits1`='0' , `extcredits2`='0' , `extcredits3`='0' , `extcredits4`='0' , `extcredits5`='0' , `extcredits6`='0' , `extcredits7`='0' , `extcredits8`='0'"); 
DB::query("REPLACE INTO " . DB::table('common_member_profile') . " SET `uid`='{$user[0]}'"); 
DB::query("REPLACE INTO " . DB::table('common_member_field_forum') . " SET `uid`='{$user[0]}'"); 
DB::query("REPLACE INTO " . DB::table('common_member_field_home') . " SET `uid`='{$user[0]}'"); 
DB::query("UPDATE " . DB::table('common_stat') . " SET `register`=`register`+1 WHERE `daytime` = '" . date('Ymd', $time) . "'"); 
if (($member = getuserbyuid($uid, 1))) { 
dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime); 


}
ucenter 验证码cccc 和出现通信不稳定
若是ucenter通信不稳定的话,时而失败,时而成功 
那可能是你的服务器配置问题(字符串中的 空格 自动转换成 “+”) 
更改方法 
步骤一: 
/source/function/function_core.php 
138行中 
function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { 
//添加代码: 
$string=rawurldecode(str_replace(" ","+",$string)); 
步骤二: 
/uc_server/model/base.php 
145行中 
function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { 
//添加代码: 
$string=rawurldecode(str_replace(" ","+",$string));

这样就可以让 + 改成空格 
也会解决ucenter 验证码 cccc的问题

资源、代码下载:http://www.erdangjiade.com/js/829.html

转载于:https://my.oschina.net/u/3200119/blog/818950

Thinkphp整合ucenter同步登录注册退出相关推荐

  1. php ucenter原理,深入挖掘Discuz Ucenter同步登录过程原理分析

    深入挖掘discuz ucenter同步登录过程原理分析,哈哈,其实纯属标题党,主要就是做了一个思路分析而已. Discuz是Ucenter的一个应用. Ucenter包含Server和Client, ...

  2. php ucenter,Thinkphp整合Ucenter视频教程

    课程知识点:在本视频课程中你将学会以下知识--了解Ucenter的功能及程序结构,了解Thinkphp整合Ucenter并应用,了解Thinkphp整合Ucenter的流程. 课程特色:由浅入深,条理 ...

  3. SpringBoot整合Shiro搭建登录注册认证授权权限项目模板

    主要内容: 1 SpringBoot整合Shiro安全框架; 2 Shiro主要学习内容总结;(执行流程.主要对象接口.注意事项等) 3 Redis实现对权限信息缓存; ! 温馨提示: 想要快速搭Sh ...

  4. 【BackEnd】SpringBoot整合MybatisPlus实现登录注册功能(适合初学者)

    一.引言 作者将代码上传到了Gitee,小伙伴可以直接Clone项目到本地 项目地址:https://gitee.com/cai-zijing/SpringBoot_MybatisPlus_Login ...

  5. springboot 整合 MongoDB 实现登录注册,html 页面获取后台参数的方法

    springboot简介: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...

  6. discuz论坛整合ucenter免激活,同步登录,同步退出解决方案(附源码)

    UCenter作为整合用户的这样一个开源插件,对于PHP开发的,甚至其它开发语言如.net,java.asp等开发人员解决多个项目整合到一起,用户进行同步登录,同步退出等,同步消息等都是非常有用的.下 ...

  7. php 同步退出,Ucenter 的同步登录与同步退出

    Discuz论坛,包含了一个叫Ucenter的用户平台,通过这个平台,我们可以把Discuz论坛和Ucenter home.ecshop以及dedecms.帝国CMS等开源平台的用户统一起来,也可以自 ...

  8. ucenter通信实现同步登录、同步退出(详细)

    首先,需要去官网下载一个ucenter的包.然后解压下来. 先把ucenter/ucenter这个文件夹复制到你的项目根目录下改名为uc_server;(这里只是我建议修改,以便于我下面写的配置); ...

  9. SSM整合 登录注册小项目

    整合SSM制作登录注册功能 首先 引入pom.xml 配置  对应版本确定无冲突  注意反射插件的引入路径 <?xml version="1.0" encoding=&quo ...

最新文章

  1. Android10.0 Binder通信原理(九)-AIDL Binder示例
  2. 【Network Security!】网络安全常用术语
  3. python平均工资-2019年我国程序员薪资统计,看看你出于什么水平?
  4. 获得无向图连通子图_讲透学烂二叉树(一):图的概念和定义—各种属性特征浅析...
  5. Spotify开源其Cassandra编排工具cstar
  6. java 分号 转义_java – 正则表达式和转义和未转义的分隔符
  7. 不对应该是撒尿C++五子棋
  8. java实现次方的运算_【技术干货】Java 面试宝典:Java 基础部分(1)
  9. 怎么做扇面_美加德尚门窗 | 阳台怎么封好?三种门窗搭配,享受四季景致
  10. centos7虚拟机安装mysql_Linux CentOS7 虚拟机安装mysql教程
  11. java arraylist 构造_深入理解java集合框架之---------Arraylist集合 -----构造函数
  12. 初步学习Django-第五篇:ORM详解
  13. TensorFlow入门(2)矩阵基础
  14. 程序设计导引(四)[终结篇]
  15. 弹性力学方程 有限差分法matlab,泊松方程的有限差分法的MATLAB实现
  16. C#开发WebService实例和发布
  17. 网页打开5秒后弹出广告窗口
  18. VMware虚拟机无法识别U盘
  19. 大话信号与系统 --- 奇文共欣赏
  20. 超实用后台UI模板有这些就够了!(一)

热门文章

  1. 区块链+证券监管:新兴金融设施的起点?
  2. sqllite查询数据量_Sqlite3查询指定行数数据
  3. slat-ssh部署salt-minion
  4. css-loader 版本号,Webpack中css-loader和less-loader的使用教程
  5. oracle中sql%rowcount的作用
  6. 棒呆!如何用css3实现烟花绽放效果
  7. std::tuple大总结
  8. 最简Python学习笔记-扫过就会
  9. HTML5中margin属性应用,CSS重要属性之 margin 属性知识大整合(必看篇)
  10. 英语 | Day1、2 x 句句真研每日一句