1、整合初步工作:
  1,安装Ucenter,完成后添加应用,填写要对接的网站地址
  2,api , uc_client目录放置对接项目的根目录
  3,通信对接,新建Ucenter组,confi文件填写在ucenter添加应用后生成的配置文件复制放入当前组的config.php文件
  新建Api目录放置通信所需要的类库(注意类库之间的引入,3.2命名空间,3.1.3使用import导入 ** 此处比较容易出问题)
  新建Index模块写入如下代码:
  import("@.Api.UcenterLib");    
  UcenterLib::back();
  刷新Ucener中的应用发现通信成功。ok,对接已好。
  4,同步注册,同步登陆,同步退出
  此步骤需要注意类库之间的应用,Ucapi类是主要实现这些同步操作,需要主要Ucapi类需要引入
  require_cache(WEB_ROOT . '/Ucenter/Conf/config.php');  ucenter组下的config配置文件主要读取常量UC_API
  require_once './uc_client/client.php'; 
  多站点单点登陆解决方案:
  在站点中的用户表需要关联Ucenter中的主键uid字段,以某个站点的会员注册为会员信息入口,注册入库同步Ucenter信息实现单点登陆。
2、对接成功后,在对接项目中发现同步登陆和同步推出异常的慢,卡好长时间,最终发现在同步的时候
if(@include UC_ROOT.'./data/cache/apps.php') {
if(count($_CACHE['apps']) > 1) {
$return = uc_api_post('user', 'synlogin', array('uid'=>$uid));
} else {
$return = '';
}
}
此处调用了uc_client目录下的应用cache下的apps,给与文件读写权限后,更新ucenter的缓存发现好了
 
3、ucenter同步注册密码机制:
$salt members表字段随机码
$password = md5(md5($password).$salt);
4、ucenter 通讯函数:
function onping() {
$ip = getgpc('ip');
$url = getgpc('url');
$appid = intval(getgpc('appid'));
$app = $_ENV['app']->get_app_by_appid($appid);
$status = '';
if($app['extra']['apppath'] && @include $app['extra']['apppath'].'./api/'.$app['apifilename']) {
$uc_note = new uc_note();
$status = $uc_note->test($note['getdata'], $note['postdata']);
} else {
$this->load('note');
$url = $_ENV['note']->get_url_code('test', '', $appid);
$status = $_ENV['app']->test_api($url, $ip);
}
if($status == '1') {
echo 'document.getElementById(\'status_'.$appid.'\').innerHTML = "<img src=\'images/correct.gif\' border=\'0\' class=\'statimg\' \/><span class=\'green\'>'.$this->lang['app_connent_ok'].'</span>";testlink();';
} else {
echo 'document.getElementById(\'status_'.$appid.'\').innerHTML = "<img src=\'images/error.gif\' border=\'0\' class=\'statimg\' \/><span class=\'red\'>'.$this->lang['app_connent_false'].'</span>";testlink();';
} }
双向同步登陆退出关键在于
    1、1:项目为自定义框架:api/uc.php,在此接口文件处理同步的相关操作
    1、2:Thinkphp项目中Ucenter独立分组中的同步Ucenter类库中处理
注意问题:
define('UC_DBTABLEPRE', '`idcbbs`.`idcbbs`.idc_ucenter_');系统生成的错误配置项,难道ucenter系统有问题?此处导致bbs登陆失败,提示乱码问题
define('UC_DBTABLEPRE', '`idcbbs`.idc_ucenter_');

Ucenter整合Thinkphp 双向同步登录退出的更多相关文章

  1. 【ASP.NET】UCenter实现多站点同步登录退出

    利用UCenter实现discuz论坛和应用网站同步登录和退出功能 测试环境:Discuz! X3.2.UCenter 1.6..Net Framework 4.0 进入Discuz 后台的UCent ...

  2. Yii2 多域名跨域同步登录退出

    在平台开发过程中,项目分为前台(frontend)www.xxx.com和后台(backend) yun.xxx.com两部分,绑定两个域名, 我们知道在没有绑定域名的时候前后台可以同步登录和退出,但 ...

  3. 【ASP.NET】UCenter实现多站点同步注册

    问题描述 上一篇文章写了[ASP.Net]UCenter实现多站点同步登录退出 在整合论坛的时候,同步注册也是相当必要的一个功能:将论坛注册的用户同步到自己的网站,自己网站注册的用户同步到论坛. 官方 ...

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

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

  5. ucenter 整合同步登录的内部实现原理及thinkphp整合ucenter

    1.用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证.2.如果验证成功,将调用位于 ...

  6. ucenter 整合同步登录的内部实现原理

    1.用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证. 2.如果验证成功,将调用位 ...

  7. ucenter 整合外部网站,实现登录等操作

    最近公司网站要出手机版,由于与论坛要有互通,实现会员的共享,由于对discuz不熟悉,起先考虑的是直接读取discuz的用户表,然后进行判断等操作,发现过于复杂,而且安全也不好. 前一段时间进行过论坛 ...

  8. netMVC 搭建Ucenter 同步登陆退出discuz

    先看一下效果

  9. ucenter无法双向同步setting[allowsynlogin]为0问题解决

    深入探索ucenter各种通信失败问题飞狐ITWeb问题描述:A,B两个应用,A的登录操作等同步到B,而B无法同步到A,即只能从A单向同步到B,AB之间没有实现双向同步以前碰到过没记录,这次记录下来查 ...

随机推荐

  1. win7 绿色版MySQL安装与配置

    操作步骤: 一.安装MySQL数据库 1.下载MySQL-5.6.17-winx64.zip文件.2.解压到指定目录,本例为D:\mysql-5.6.17-winx64.3.修改配置文件,my-def ...

  2. 防止输入时键盘覆盖掉textfiled

    添加监听者 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardwasChange:) ...

  3. IOS--工作总结--post上传文件(以流的方式上传)

    1.添加协议 <NSURLConnectionDelegate> 2.创建 @property (nonatomic,retain) NSURLConnection* aSynConnec ...

  4. Sql Server trace flags

    Tace flag number Description -T1205 每次deadlock算法运行时,都收集相关的信息 -T1204 当deadlock算法发现死锁时才收集相关信息 -T3604 把 ...

  5. rotate.js实现图片旋转 (chrome,IE,firefox都可以实现)

    找了好多资料,要么是IE可以用,但是谷歌不行,,还有就是两个都可以用的,图片大小显示不全.终于找到一个好一点的js,先贴一下代码. 1.rotate.js jQuery.fn.rotate = fun ...

  6. LogBoy运行截图

  7. MSBI常见问题总结

    SSIS 1.对连接管理器“DC”的AcquireConnection方法调用失败,错误代码0xC0209303.可能在此之前已经发出错误消息,提供了有关AcquireConnection方法调用失败 ...

  8. 将数组适配到ListView

    public class TutListActivity extends ListActivity { @Override public void onCreate(Bundle savedInsta ...

  9. QT VS配置UNICODE问题

    默认情况下,使用VSQT插件 导入.pro后,会自动在项目文件里面预定义好宏UNICODE,可以把该宏去掉,以免造成其他程序,使用多字节的代码出错 去除的两个方法 1.打开Propject->P ...

  10. PDM使用问题总结

    1.连接postgres生成pdm 直接连postgres数据库生成的可以生成表名,但表结构为空,不知为何,后来直接用生成数据库sql脚本后转成pdm成功.但是列注释没有了. 2.sql语句生成的pd ...