`
szzhi
  • 浏览: 80231 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

第三方从UC账号免激活异步登录DiscuzX2.5 方法

    博客分类:
  • php
 
阅读更多

最近刚好需要一个结合UC并使用了DX2.5的方案,发现DX2.5官方只提供允许登录自动激活的功能(这选项在DX管理中心->站长 -> UCENTER设置),等于通过UC注册的账号,仍必须在DX2.5登录一次,才能自动激活账号,这样其它基于UC的其它应用,才能实现异步登录。

以下方法解决第三方应用登录,同时异步登录DX2.5,,已在DX2.5+UC1.6+开发的第三方应用中测试通过。

非官方解决方法:

修改dx2.5目录下的api/uc.php
找到以下代码

     function synlogin($get, $post) {
                    global $_G;

                    if(!API_SYNLOGIN) {
                            return API_RETURN_FORBIDDEN;
                    }

                    header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

                    $cookietime = 31536000;
                    $uid = intval($get['uid']);
                    if(($member = getuserbyuid($uid, 1))) {
                            dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
                    }
            }
 

改成:

     function synlogin($get, $post) {
                    global $_G;

                    if(!API_SYNLOGIN) {
                            return API_RETURN_FORBIDDEN;
                    }

                    header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

                    $cookietime = 31536000;
                    $uid = intval($get['uid']);
                    if(($member = getuserbyuid($uid, 1))) {
                            dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
                    }
    /**以下代码是新添加**/
                    else{
                            $init_arr = explode(',',  $_G['setting']['initcredits']);
                            $groupid =  $_G['setting']['regverify'] ? 8 :  $_G['setting']['newusergroupid'];

                            C::t('common_member')->insert($uid, $get['username'], md5(random(10)), $get['email'], $_G['clientip'], $groupid, $init_arr);
                            C::t('common_member_status')->update($uid, array('lastip' => $_G['clientip'], 'lastvisit' =>TIMESTAMP, 'lastactivity' => TIMESTAMP));
                            if(($member = getuserbyuid($uid, 1))) {
                                    dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
                            }
                    }
    /**到这里新增代码结束**/
            }
 

如果要符合DX2.5后台的自动激活选项,要改成这样:

     function synlogin($get, $post) {
                    global $_G;

                    if(!API_SYNLOGIN) {
                            return API_RETURN_FORBIDDEN;
                    }

                    header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

                    $cookietime = 31536000;
                    $uid = intval($get['uid']);
                    if(($member = getuserbyuid($uid, 1))) {
                            dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
                    }
                    else{
                            if($_G['setting']['fastactivation']){
                                    $init_arr = explode(',',  $_G['setting']['initcredits']);
                                    $groupid =  $_G['setting']['regverify'] ? 8 :  $_G['setting']['newusergroupid'];

                                    C::t('common_member')->insert($uid, $get['username'], md5(random(10)), $get['email'], $_G['clientip'], $groupid, $init_arr);
                                    C::t('common_member_status')->update($uid, array('lastip' => $_G['clientip'], 'lastvisit' =>TIMESTAMP, 'lastactivity' => TIMESTAMP));
                                    if(($member = getuserbyuid($uid, 1))) {
                                            dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
                                    }
                            }
                    }
            }
 

只是简单实现登录,不保证有没有其它的风险存在。慎用。后果自负。

分享到:
评论

相关推荐

    discuzx2.5数据字典

    X2.5 是一个著名的开源社区论坛软件,其数据字典是对数据库中各个表的详细描述,包括表的结构、字段名、数据类型、默认值等关键信息。以下将详细介绍这些表的主要功能和用途: 1. pre_common_admincp_cmenu(后台...

    DiscuzX2.5舞曲系统

    【标题】"DiscuzX2.5舞曲系统"是一个基于Discuz! X2.5框架进行二次开发的社区论坛解决方案,专为舞曲音乐爱好者和相关行业提供交流平台。这个系统结合了Discuz!的强大功能和七禧的定制化设计,旨在打造一个集舞曲...

    DiscuzX2.5微博登陆插件

    API允许开发者获取微博用户的授权,从而在第三方应用中使用微博账号进行登录。具体来说,该插件主要包括以下几个关键部分: 1. **xwb.php**:这是插件的主要入口文件,负责处理微博登录的请求和响应。当用户点击...

    Appcan 论坛插件DiscuzX2.5.zip

    这包括通过 Appcan 的 SDK 实现 OAuth2.0 或者自定义登录接口,确保用户能在 Appcan 应用中登录其 DiscuzX2.5 账户。 3. **界面适配**:DiscuzX2.5 的界面需要适应移动端的显示,这可能涉及到对 CSS 和 HTML 的调整...

    DiscuzX2.5中英文切换教程

    《DiscuzX2.5中英文切换教程详解》 DiscuzX2.5是一款流行的社区论坛软件,它提供了丰富的功能和灵活的配置选项。对于多语言站点,支持中英文切换是一项重要的需求。本文将详细解释如何在DiscuzX2.5中实现这一功能,...

    DiscuzX2.5尚蓝风格模板下载

    《DiscuzX2.5尚蓝风格模板:打造专业且美观的社区网站》 DiscuzX2.5是一款广泛应用于论坛、社区等交互式网站的开源建站系统,以其强大的功能和灵活的扩展性深受广大站长喜爱。"尚蓝风格模板"是专为DiscuzX2.5设计的...

    Discuzx2.5模板

    X2.5拥有庞大的应用中心,用户可以在这里找到各种第三方开发的插件,进一步扩展论坛功能。这些插件涵盖了积分交易、活动报名、问答系统等多个领域,满足不同类型的社区运营需求。同时,开发者也可以通过API接口,...

    DiscuzX2.5发帖界面加入嵌套网页教程.pdf

    "DiscuzX2.5发帖界面加入嵌套网页教程" 本教程旨在指导DiscuzX2.5站长如何在发帖界面加入嵌套网页功能,以提高用户体验和互动性。该教程涵盖了详细的实施步骤和代码示例,旨在帮助站长快速掌握该功能的实现。 知识...

    discuzX2.5木板风格

    标题中的“discuzX2.5木板风格”指的是Discuz! X2.5这款知名的社区论坛软件的一个特定主题或模板。Discuz! 是一款基于PHP和MySQL的开源社区论坛系统,广泛应用于搭建各种类型的在线论坛。X2.5是其版本号,表示这是该...

    地方门户DiscuzX2.5蓝色模板

    地方门户DiscuzX2.5蓝色模板是一款专为地方门户网站设计的、基于DiscuzX2.5论坛系统的优化模板。这款模板以其独特的蓝色调和简洁的设计风格,为用户提供了优质的浏览体验,旨在提升地方门户网站的专业性和吸引力。 ...

    DiscuzX2.5华西100模板

    DiscuzX2.5华西100模板

    DiscuzX2.5瀑布流图墙安装包(回复弹出版)

    【DiscuzX2.5 瀑布流图墙安装包(回复弹出版)】是针对DiscuzX2.5论坛系统的一个插件扩展,它为用户提供了全新的图片展示方式,即瀑布流图墙功能。瀑布流布局通常用于图片密集型的网站或应用,其特点是页面元素(主要...

    DiscuzX2.5完整目录结构注释

    所整理的DiscuzX2.5完整的目录结构注释,共67页,分享给需要的童鞋

    五格子蓝色DiscuzX2.5模板

    【五格子蓝色DiscuzX2.5模板】是一款专为Discuz! X2.5论坛系统设计的界面模板,其特色在于采用了五格布局,呈现出清爽、专业的蓝色调风格,旨在提供用户友好的交互体验和视觉美感。这款模板不仅在外观上注重设计感,...

    DiscuzX2.5化龙巷风格模板

    但使用时需注意,部分第三方插件可能需要微调才能与新模板匹配。 2. 优化:为了提高用户体验和加载速度,建议对模板进行代码优化,包括减少CSS和JavaScript的冗余,合并文件,以及使用CDN服务加载静态资源。 四、...

    DiscuzX2.5数据表详解

    本篇文章将深入解析DiscuzX2.5的主要数据表及其字段,帮助读者理解其内部工作机制。 1. pre_common_admincp_cmenu:后台菜单收藏表 - ids:用于标识每个菜单项的唯一ID,小型无符号整数。 - title:存储菜单的...

    discuzX2.5版本黑色模板风格下载

    "DiscuzX2.5版本黑色模板风格下载"是针对这个特定版本的一个主题风格设计,它为Discuz! 论坛提供了独特的视觉体验,以黑色为主色调,可能适合那些追求个性和专业形象的网站。 黑色模板风格通常会给人一种高端、专业...

    七禧二次开发DiscuzX2.5舞曲系统+精仿9ku音乐网模板.rar

    《深入理解七禧二次开发的DiscuzX2.5舞曲系统与9ku音乐网模板》 在互联网社区建设中,论坛系统起着至关重要的作用, Discuz! 作为一款广泛应用的开源论坛软件,因其强大的功能和易用性,深受广大站长的喜爱。本资源...

    discuzX2.5_X3模板开发必备

    discuz开发必备discuzX2.5X3模板开发文档(精华版)

    discuzx2.5手机号登陆网站

    在"discuzx2.5手机号登陆网站"的场景下,我们关注的是如何通过手机号实现用户的登录功能,这在现代互联网应用中是非常常见且重要的一个特性。 手机号登录是Discuz! X2.5的一个增强安全和用户体验的特性。传统的...

Global site tag (gtag.js) - Google Analytics