您现在的位置是:首页 > 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学习include变量和转义字符
include/common.inc.php include/global.func.php 参数$cplog文件名 | $str 日志内容
企业内网环境中安装Discuz的设置方法
1.安装必要软件包和discuz!。2.配置apache和mysql。3.访问内网ip完成安装。4.定制discuz!以适应企业需求。5.优化性能和安全性。
Discuz开发头条小程序的特色功能与应用
当我们决定使用discuz开发头条小程序时,首先需要考虑的是如何将discuz的功能与小程序的特性结合起来。discuz的用户系统可以直接用于小程序的用户认证和管理
wmdz对接discuz小程序的步骤方法
安装资质材料微信小程序要求社区、论坛类小程序需要有《增值电信业务经营许可证》或《电信与信息服务业务经营许可证》。
相关源码
-
(自适应)宽屏农业机械农耕设备类网站pbootcms模板免费下载为农机企业打造的现代化响应式网站模板,自动适配电脑、平板和手机,浏览体验一致,独立页面SEO设置,提升搜索引擎可见度。查看源码 -
粉色家政月嫂保姆公司pbootcms网站模板(PC+WAP)为家政服务、月嫂保姆企业打造的营销型解决方案,基于PbootCMS内核开发,采用温馨粉色主题传递行业温度。PHP7.0+高性能架构支持SQLite/MySQL双数据库查看源码 -
(自适应响应式)门窗定制门业带视频功能pbootcms模板下载本模板采用PbootCMS内核开发,为门窗制造、定制安装企业打造,通过可视化后台管理系统快速构建品牌官网。自适应设计确保在手机、平板、电脑等设备上均能获得优质浏览体验查看源码 -
pbootcms模板(PC+WAP)火锅加盟餐饮美食类带留言源码基于PbootCMS内核深度开发,为火锅、餐饮品牌打造的营销型解决方案。采用红色主题传递行业活力,实现PC与WAP端适配。查看源码 -
(PC+WAP)红色户外岗亭钢结构岗亭pbootcms网站模板为钢结构岗亭、户外设施企业打造的高端响应式营销门户,基于PbootCMS开源内核深度开发,采用HTML5自适应架构,实现PC与移动端数据实时同步展示。查看源码 -
(自适应响应式)html5高档服装定制西服pbootcms模板下载本模板基于PbootCMS内核开发,为服装定制企业和服装品牌量身打造。设计风格时尚现代,充分展现服装行业的审美特质与品牌魅力。采用HTML5响应式技术,确保在各种设备上呈现视觉效果。整站布局注重产品展示与品牌叙事,帮助企业有效展示服装系列与定制服务,提升客户体验。查看源码
| 分享笔记 (共有 篇笔记) |
