您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
Discuz & UCenter修改手记
陶旭笙2025-07-17Discuz教程已有人查阅
导读最近在整JAVA和UCENTER的东西,受限于项目架构需要,无法完全以UCENTER为中心,所以在对接过程中遇到了许多不愉快的事情。经历多番研究,终于解决了其中了两个大问题
最近在整JAVA和UCENTER的东西,受限于项目架构需要,无法完全以UCENTER为中心,所以在对接过程中遇到了许多不愉快的事情。经历多番研究,终于解决了其中了两个大问题,现记录下来,以备日后查看。
一、解决email必须填写的问题
项目并不要求用户注册时填写email,但UCENTER API要求必须输入email才可以通过验证,不得已必须得修改UCENTER代码才能绕过。以下是改动的代码:
/uc_server/control/user.php 69行:
由于BBS屏蔽了DISCUZ自带的注册、登录、找密等操作,所以必须要实现单点登录。当中遇到了一个非常蛋疼的问题:主站注册的账户同步到UCENTER之后,UCENTER并不会通知其他应用,也就是说默认情况下,其他应用(包括DISCUZ在内)无法在新用户注册之后立即更新用户列表。细细研究之后发现,DISCUZ是在本地注册、登录等事件中才会与UCENTER同步。这导致了,在主站新注册的用户,无法在BBS单点登录成功--因为在BBS中根本不存在这个用户。
解决的方法有两个,
一是用户手工登录一次BBS,BBS自带的机制会自动将用户信息从UCENTER同步过来;
二是修改DISCUZ系统代码,在单点登录请求时自动同步用户数据。在权衡了各方面因素之后,决定采用第二套方案。以下是改动的代码:
/api/uc.php 192行:
一、解决email必须填写的问题
项目并不要求用户注册时填写email,但UCENTER API要求必须输入email才可以通过验证,不得已必须得修改UCENTER代码才能绕过。以下是改动的代码:
/uc_server/control/user.php 69行:
1 // NOTE: 解决email必须填写的问题
2 //if(($status = $this->_check_email($email)) < 0) {
3 // return $status;
4 //}
二、解决用户必须手工登录1次论坛的问题由于BBS屏蔽了DISCUZ自带的注册、登录、找密等操作,所以必须要实现单点登录。当中遇到了一个非常蛋疼的问题:主站注册的账户同步到UCENTER之后,UCENTER并不会通知其他应用,也就是说默认情况下,其他应用(包括DISCUZ在内)无法在新用户注册之后立即更新用户列表。细细研究之后发现,DISCUZ是在本地注册、登录等事件中才会与UCENTER同步。这导致了,在主站新注册的用户,无法在BBS单点登录成功--因为在BBS中根本不存在这个用户。
解决的方法有两个,
一是用户手工登录一次BBS,BBS自带的机制会自动将用户信息从UCENTER同步过来;
二是修改DISCUZ系统代码,在单点登录请求时自动同步用户数据。在权衡了各方面因素之后,决定采用第二套方案。以下是改动的代码:
/api/uc.php 192行:
1 // NOTE 解决用户必须手工登录1次论坛的问题
2 $member = getuserbyuid($uid, 1);
3
4 if (!$member) {
5 $init_arr = explode(',', $_G['initcredits']);
6 $groupid = $_G['regverify'] ? 8 : $_G['newusergroupid'];
7
8 C::t('common_member')->insert($uid, $get['username'], md5(random(10)), $get['email'], $_G['clientip'], $groupid, $init_arr);
9
10 $member = getuserbyuid($uid, 1);
11 }
12
13 if($member) {
14 dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
15 }
本文标签:
很赞哦! ()
上一篇:LNMP安装discuz
下一篇:PHP的discuz模板语法介绍
相关教程
- 帝国CMS整合Ucenter接口的两种方法示例
- Discuz的ucenter通讯失败与Discuz的头像无法显示的解决方法
- 直接导入用户信息到discuz ucenter的方法
- Discuz!X2 、Ucenter 1.6、ASP.NET程序整合步骤
- UCenter创始人、Discuz!创始人、Discuz!管理员账号的区别和密码
- 用户中心怎么和discuz的ucenter数据共通
- discuz UCenter对接常见问题解答
- 忘记UCENTER创始人密码怎么办,discuz密码找回方法
- ucenter php整合discuz用户的方法示例
- .net mvc通过ucenter和discuz的整合nopcommerce ucenter插件
- Discuz x3 UCenter实现同步登陆的方法
- ucenter给discuz批量注册马甲带头像的实现方法
图文教程
discuz_style_default.xml修改方法
首先我们需要在template/文件夹下新建一个yourstyle文件夹放置模板文件,然后复制default下的discuz_style_default.xml
Discuz手动修改管理员密码的步骤
Discuz用户的密码,加密密码存储在pre_ucenter_members , 验证密码公式: uc 用户表中的password == md5(md5(用户明文密码). uc用户表中密钥salt)所以更新用户密码可以这样:
Discuz模板安装后显示异常的原因和解决方法
在处理Discuz模板显示异常时,最关键的是理解这些问题可能源自哪里。通常,问题可能出现在模板文件的编码、样式表的引用、JavaScript脚本的加载、或者是模板与Discuz版本的不兼容性上。
Centos搭建Discuz论坛的方法
系统要求:CentOS6.864位操作系统搭建Discuz论坛准备LAMP环境LAMP是Linux、Apache、MySQL和PHP的缩写,是Discuz论坛系统依赖的基础运行环境。
相关源码
-
(自适应响应式)化妆美容口红唇膏化妆品模板pbootcms源码下载基于PbootCMS开发的响应式模板,为化妆品品牌、美容机构打造,通过优雅的视觉呈现提升产品展示效果与品牌调性。采用时尚杂志排版风格,色卡系统规范产品展示。微交互动画增强用户体验,智能推荐算法提升产品关联展示效果。查看源码 -
(自适应响应式)家电维修清晰服务网站pbootcms模板免费下载本模板基于PbootCMS内核开发,为维修服务类企业打造,特别适合家电维修、设备维护等行业使用。通过简洁直观的界面设计,帮助企业快速搭建专业级服务平台,实现线上业务高效管理。查看源码 -
(自适应)大气壁挂炉暖气设备家用电器模板带加盟申请和下载资料为壁挂炉、暖气片等供暖设备企业设计的PbootCMS模板,通过响应式技术实现跨终端展示产品参数和技术细节。后台统一管理确保采暖系统数据、服务网点信息实时同步更新查看源码 -
(PC+WAP)绣花刺绣传统手工工艺pbootcms网站源码下载这款基于PbootCMS的网站模板为刺绣和传统手工艺行业设计,采用优雅的布局和精致的细节处理,能够呈现手工艺品的独特韵味和文化内涵。模板结构合理,功能完善,是手工艺从业者展示作品的理想选择。查看源码 -
pbootcms网站网络公司个人作品展示类网站源码(自适应)为网站建设公司、网络服务企业打造的响应式门户解决方案,基于PbootCMS内核深度开发。采用前沿自适应架构,无缝适配手机端交互与PC端展示需求。查看源码 -
(自适应)幽默笑话脑筋急转弯搞笑趣图博客pbootcms模板下载本模板基于PbootCMS系统开发,专为幽默笑话、搞笑趣图类网站设计。采用轻松活泼的布局风格,突出娱乐内容分享特色,适合各类笑话、段子、搞笑图片等内容展示。查看源码
| 分享笔记 (共有 篇笔记) |
