您现在的位置是:首页 > 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的MVC结构分析介绍
首先,我们先介绍一下MVC开发思想简介,MVC的全名是Model-View-Controller是模型-师徒-控制器的缩写,它是一种软件设计思想。使用一种业务逻辑、数据和显示分离的方法资质代码
discuz积分及点评需求
1.点评设置(可增强用户互动,但又不会顶帖刷屏):目前很难限制用户通过点评刷积分,点评等同于回复但却不需要审核,目前只是简单地关闭了点评功能。
Discuz!NT模板机制详细分析
作为产品中的一大特色,模板机制一经推出,就引来了大家特别是站长们的关注。但它所饱受的风风 雨雨也成了那时不少人关注的话题。而今天本人将结合在产品组中的开发经历
C#版本的discuz authcode函数代码
根据网上流传甚广的一个版本修改,修正了设置加密串过期时间expiry没有效果的问题。usingSystem;using System.Collections.Generic;
相关源码
-
pbootcms模板(PC+WAP)火锅加盟餐饮美食类带留言源码基于PbootCMS内核深度开发,为火锅、餐饮品牌打造的营销型解决方案。采用红色主题传递行业活力,实现PC与WAP端适配。查看源码 -
(PC+WAP)化工材料企业环保能源绿色营销型pbootcms模板源码下载本模板为化工材料及环保能源企业设计,采用PbootCMS开发,可展示各类化工产品、环保技术及能源解决方案。查看源码 -
(自适应)宽屏大气的净水器智能电子设备网站pbootcms源码下载本模板基于PbootCMS内核开发,为净水器设备、智能电子设备企业量身打造,采用响应式设计技术,可快速构建专业级企业官网。通过本模板可高效展示产品技术参数、解决方案及企业服务优势。查看源码 -
(PC+WAP)红色驾校培训学车在线预约源码下载基于PbootCMS内核开发的驾校培训专用网站模板,深度适配驾驶培训行业展示需求。采用PC与移动端同步响应设计,单一后台统一管理内容数据,更换图文素材后可快速转变为其他行业网站。查看源码 -
(自适应)平面设计网络工作室个人作品展示网站模板免费下载基于PbootCMS内核开发的响应式网站模板,为设计工作室、创意机构打造的作品展示解决方案。通过模块化布局与极简交互设计,呈现设计作品的视觉细节,支持作品分类、案例解析等多维度展示方式。查看源码 -
帝国cms淘宝客京东联盟网站整站源码下载本模板基于帝国CMS内核深度开发,为淘宝客行业量身定制。随着腾讯微信与淘宝生态的互联互通,淘宝客链接现可在微信、QQ等平台直接分享,为推广带来更多便利。模板特别优化了店铺推广功能,有效避免商品下架导致的链接失效问题,同时支持京东联盟等多平台商品推广。查看源码
| 分享笔记 (共有 篇笔记) |
