您现在的位置是:首页 > 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论坛
CMS意为内容管理系统(可理解为由特定的语言写的一套程序,或后台)有论坛cms,商城cms,企业网站cms,留言cms,直播cms等(在虚拟机服务器中使用phpstudy集成环境搭建)
centos7搭建discuz的方法
系统配置相关系统版本:CentOS-7-x86_64-Minimal-1503-01.iso主机名: BBSIP: 10.10.10.14 这是虚拟机自动分配临时关闭:systemctr stop firewalld
xampp搭建discuz论坛的方法
1.浏览器中输入http://localhost:80/phpmyadmin/,或者点击mysql的admin,进入mysql数据库2.new->create,创建数据库3.浏览器中输出localhost:80/bbs
Discuz的NT控件剖析DataGrid数据列表
自从9月未开始写关于"ICONIX方法"的系列文章以来,到今天已有两个多月了,当初因为兴趣点的转移才划一段落的Discuz!NT系列文章,从今天开始又要开始续写了。
相关源码
-
(自适应响应式)HTML5磁电机械设备蓝色营销型网站pbootcms模板本模板为磁电设备行业设计,采用蓝色营销风格,突出工业设备的专业性和技术感。模板结构清晰,能够有效展示磁电设备的技术参数、应用场景和企业实力,帮助客户快速了解产品特点和公司服务。查看源码 -
自适应容器设备机械行业通用pbootcms网站模板本模板是一款基于PbootCMS开源内核深度开发,为容器制造、容器设备、压力容器及相关行业量身打造的高品质响应式企业网站模板。查看源码 -
响应式高端家居家具装修类pbootcms模板网站源码家居装修、空间设计企业打造的营销型网站解决方案,基于PbootCMS内核深度开发。采用前沿响应式架构,适配手机端与PC端浏览体验查看源码 -
(自适应)高端集团跨国公司产业联盟机构网站模板免费下载基于PbootCMS内核开发的集团级企业网站模板,采用响应式设计架构,确保在各类移动设备上获得浏览体验。通过模块化布局与简约大气的视觉风格,帮助集团企业高效展示组织架构、发展历程和业务矩阵,建立专业的企业形象窗口。查看源码 -
(PC+WAP)红色家装设计智能家居家具建材pbootcms网站源码下载本模板基于PbootCMS系统开发,为智能家居、家装设计及家具建材行业设计。采用现代化布局风格,突出家居设计行业特色,适合展示各类家居产品、设计方案和建材信息。查看源码 -
(自适应)驾校培训学车活动免费pbootcms源码下载本模板基于PbootCMS内核开发,为驾校培训行业打造,具备完善的招生展示、课程预约、教练团队展示等功能模块。响应式设计适配各类移动终端,数据实时同步管理,助您高效开展线上业务。查看源码
| 分享笔记 (共有 篇笔记) |
