`

[经验分享] 外部程序调用ucenter同步登陆同步登出论坛以及空间

阅读更多

今天经过研究发现使用discuz论坛的uc_client以及配置文件可以同步登陆登出uchome,使用uchome的uc_client和配置文件可以同步登陆登出discuz论坛
查看了代码才发现是client.php只生成一条script语句,所以就只能登陆一个应用程序了,我修改了文件使uc_user_synlogin可以登陆所有应用,uc_user_synlogout可以登出所有应用
下面为步骤:
一、将论坛中的 uc_client文件夹 以及 config.inc.php 文件复制到网站根目录下的文件夹中,比如新建的文件夹uc
在config.inc.php文件的最后加入所有应用程序的id,这些id可以去ucenter的后台查看

    // ===========================所有应用id
    define('ALL_APPID','1|2');

 二、修改uc_client文件夹下的client.php文件
修改程序 uc_user_synlogin 和 uc_user_synlogout 将其中的 uc_api_post 改为 uc_api_post2
然后将下列代码复制到 client.php的最后,再使用同步登陆和登出程序就可以同时登陆所有的应用了

    // =========================以下为云之麒修改=============================
    function uc_api_post2($module, $action, $arg = array()) {
            $s = $sep = '';
            foreach($arg as $k => $v) {
                    $k = urlencode($k);
                    if(is_array($v)) {
                            $s2 = $sep2 = '';
                            foreach($v as $k2 => $v2) {
                                    $k2 = urlencode($k2);
                                    $s2 .= "$sep2{$k}[$k2]=".urlencode(uc_stripslashes($v2));
                                    $sep2 = '&';
                            }
                            $s .= $sep.$s2;
                    } else {
                            $s .= "$sep$k=".urlencode(uc_stripslashes($v));
                    }
                    $sep = '&';
            }
            $postdata = uc_api_requestdata2($module, $action, $s);
            $result = "";
            foreach($postdata as $key => $value){
                    $result = $result.uc_fopen2(UC_API.'/index.php', 500000, $value, '', TRUE, UC_IP, 20);
            }
            return $result;
    }

    function uc_api_requestdata2($module, $action, $arg='', $extra='') {
            $input = uc_api_input($arg);
            $post = array();
            $allId = explode("|",ALL_APPID);
            foreach($allId as $key => $value){
                    $post[] = "m=$module&a=$action&inajax=2&release=".UC_CLIENT_RELEASE."&input=$input&appid=".$value.$extra;
            }
            return $post;
    }
    // =========================以上为云之麒修改=============================

 PS:修改好ucenter后台后再去修改,论坛下的config.inc.php,不要使用记事本打开修改,txt保存utf8文件时会自动给文件添加BOM,这时后台就会显示通信失败,建议使用UltraEdit编辑,保存时选择另存 utf8 - 无BOM

 

海口 http://www.souhaikou.com

 

分享到:
评论

相关推荐

    UCenter通信和同步登陆

    示例通常会涵盖上述提到的关键步骤,例如如何设置和调用API,以及如何处理同步登录的流程。 总之,UCenter通信和同步登录是构建多站联动系统的关键技术,它简化了用户管理并提升了用户体验。通过理解和实践这一技术...

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

    3. 退出同步:用户点击退出时,清除Thinkphp应用的session,并调用Ucenter的`UC_API.logout`接口注销用户,确保用户在所有关联应用中都已退出。 四、注意事项 1. 安全性:在与Ucenter交互过程中,务必确保通信过程...

    ucenter,uchome,discuz同步注册免激活同步登录

    Uchome则是一个社交网络建站系统,让用户可以创建个人空间,分享生活动态。而Discuz! 是一个论坛管理系统,允许用户进行讨论和互动。这三者之间的同步注册和免激活同步登录功能对于构建大型、多应用的社区网站至关...

    Auth_UC整合MediaWiki和UCenter同步登陆

    用于MediaWiki和UCenter之间的同步登陆,下载后解压到extensions文件夹中。具体用法请参考:http://www.haosblog.com/?mod=article_read&id=471

    discuz同步登陆程序

    通过以上介绍可以看出,实现Discuz与个人网站之间的同步登录涉及到多个方面的技术细节,包括UCenter的配置、同步登录逻辑的编写以及必要的安全措施等。开发者需要根据自己的具体需求和技术背景,选择合适的方法和...

    java整合Ucenter统一登陆、退出源码

    Java整合Ucenter实现统一登录和退出的源码是基于UCenter通信协议的一种技术实践,它主要解决了在多个应用系统间用户身份验证的统一问题。UCenter是一个由Discuz!开发的用户中心系统,它可以集中管理多个网站或应用的...

    asp.net同步登陆实例ucenter_demo

    网上asp.net同步Ucenter的实例...vs同步登陆实例ucenter_demo,这个实例绝对好用,只需要配置好 web.config三个地方,通信密钥,Ucenter通信地址及编码。其它都不用配置,如果不通信失败的话,把服务的Ip地址转化为域名

    UCenter与Asp.net应用同步通信Demo

    【标题】"UCenter与Asp.net应用同步通信Demo"主要展示了如何在Asp.net应用程序中集成UCenter,实现用户数据的同步交互。UCenter是一个由Comsenz公司开发的社区用户中心系统,它能够集中管理多个基于相同或不同平台...

    Discuz 自动同步登陆通达OA的完美解决办法

    Discuz 自动同步登陆通达OA的完美解决办法,自己看了一下UCenter、Discuz同步登陆的机制,提炼出了以下用于同步登陆Discuz的代码

    UCenter应用程序开发简单实例(双向同步).doc

    【UCenter 应用程序开发】是指通过使用 UCenter 这一集中管理用户身份认证、信息同步的平台,为多个网站或应用提供统一用户登录、数据共享的功能。在这个简单实例中,我们将了解如何配置和创建一个与 UCenter 双向...

    ucenter_1.6 多项目双向同步全攻略(图文详解下)

    ### ucenter_1.6 多项目双向同步全攻略(图文详解下) #### 一、Ucenter双向同步概述 Ucenter作为一个成熟的用户中心系统,在多个项目之间实现用户数据的同步非常方便。本篇将详细介绍如何在ucenter_1.6版本中实现...

    ShopEX不能同步登陆的解决方案

    出现这种情况的主要原因在于ShopEX、天天团购以及UCenter之间的登录状态同步机制存在问题。具体来说,可能是以下几个方面的原因: 1. **Cookie设置不一致**:ShopEX、天天团购及UCenter可能在处理Cookie时采用了...

    asp.net版ucenter接口程序源码_ucenterapi.zip

    4. 用户登出:接口应提供登出功能,清除本地session,并向Ucenter发送登出请求,同步登出状态。 5. 密码找回:实现密码重置流程,通常涉及发送验证码到用户邮箱或手机,验证通过后更新密码。 6. 应用授权:管理应用...

    ucenter 整合SNS

    3、登入、登出等操作的同步,使用post方式调用UCenter的API接口,如果成功,将返回一段代码,其代码输出到页面将达到跨域请求各应用,应用获得请求后自行进行cookie或session的操作。 4、注册等非同步操作,将不会...

    ecshop 同步ucenter,一步登陆discuzX

    标题中的"ecshop 同步ucenter,一步登陆discuzX"指的是在电子商务平台ECShop中集成用户中心(Ucenter)的同步登录功能,使得用户在登录ECShop时也能同步登录到论坛系统Discuz! X。这通常是通过Ucenter的API接口实现的,...

    asp.net整合ucenter接口程序源码

    ASP.NET整合Ucenter接口程序源码是一套用于将ASP.NET应用程序与Comsenz的Ucenter进行集成的解决方案。Ucenter是Comsenz公司推出的一款集成了用户管理、应用互联等功能的中心化用户系统,常被用于论坛、博客、问答等...

    详解ucenter原理及第三方应用程序整合思路、方法

    例如,当用户在某个应用程序中发送站内信时,可以通过uCenter API将消息同步到其他应用程序。 **2.3 用户资料完善** 为了保证不同应用程序间用户资料的一致性,当用户首次登录一个新的应用程序时,系统可能会要求...

    使用ucenter实现多站点同步登录的讲解

    做Web开发经常会要求实现多站点同步登录的情况,对于PHP开发来说,我们可以使用ucenter来实现多个站点同时登陆同时退出,用户同步的...检测完成后实现本地登陆,代码自己写,然后让其他应用程序也登陆,此时调用外部

    Ucenter

    在描述中提到的“博文链接:https://snowelf.iteye.com/blog/814112”,这可能是一个关于Ucenter使用或开发经验分享的博客文章,虽然具体内容未给出,但通常这类博客会包含如何配置Ucenter,解决常见问题,或者进行...

Global site tag (gtag.js) - Google Analytics