Discuz UCenter 修改手记 - 2014.12.19
最近在整JAVA和UCENTER的东西,受限于项目架构需要,无法完全以UCENTER为中心,所以在对接过程中遇到了许多不愉快的事情。经历多番研究,终于解决了其中了两个大问题,现记录下来,以备日后查看。
一、解决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 }
转载于:https://www.cnblogs.com/ymind/p/4174281.html
Discuz UCenter 修改手记 - 2014.12.19相关推荐
- app后端设计(3)--短信,邮件,推送服务(2014.12.05更新)
在app的后端设计中,免不了消息的推送,短信,邮件等服务,下面就个人的开发经验谈谈这方面. (1)最重要的是,各种推送一定要放在队列系统中处理,不然会严重影响api的响应时间. (2)短信方面 以前我 ...
- Discuz UCenter Server功能解析
技术点 1.extract函数 将列表中的存在映射关系的key创建为变量,value作为变量值.具体可看:https://secure.php.net/manual/en/function.extra ...
- 用Discuz/UCenter账号实现Wifi登录认证
如果你有一个用Discuz/UCenter构建的网站,还有自己的Wifi基站或热点,那你可以用Wiwiz为你的Wifi热点做一个入口登录页面.当 wifi终端用户连到你的热点时,打开任何网页都会先显示 ...
- 【跃迁之路】【674天】程序员高效学习方法论探索系列(实验阶段431-2018.12.19)...
@(收集箱(每日一记,每周六整理))专栏 实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) ...
- 44-当日交易总结。(2014.12.31)
44-当日交易总结 1.趋势抓的很好时,在低位近.在高位出.也许收益做的很不错,但是人在高度专注情况下,容易疲劳.这会导致一轮交易即使做的很好,在准备下一轮交易时会出现体力不支的现象.所以,不要熬夜, ...
- U3D笔记11:47 2016/11/30-15:15 2016/12/19
U3D笔记11:47 2016/11/30-15:15 2016/12/19 技术BLOG:http://www.unity.5helpyou.com/2373.html#comment-43108 ...
- Discuz! Ucenter API for JAVA jar包和测试代码
为什么80%的码农都做不了架构师?>>> Discuz! Ucenter API for JAVA jar包和测试代码 Discuz! Ucenter API for JAVA-ja ...
- Interesting Finds: 2007.12.19
Other: 我不是一名互动设计师,但我曾经是... JavaScript: Working aroung the instanceof memory leak SQLServer: SQL Serv ...
- Discuz 批量修改、替换帖子标题或内容
修改标题用这个 Discuz批量修改标题 省心版(xcmodifytitle)_Discuz插件_Discuz应用中心 修改内容可以用这个 Discuz批量修改帖子内容 省 ...
最新文章
- re搜索字符串与find字符串不一样的结果
- ddr3服务器内存条维修,详解服务器中内存故障的优质解决方案
- 行为设计模式 - 访客设计模式
- English trip M1 - PC9 Where am I Teacher:Jade
- 如何关联php5与apche,PHP5在Apache下的两种模式的安装_php
- 简单分析minidump
- QT下assimp库的模型加载
- Some file crunching failed, see logs for details解决办法
- java 日期 英文月份_java日期月份转英文格式
- 浏览器/html/css面试题
- AD620单电源应变片测量电路分析
- 模拟时针--微信小程序制作
- Fildder拦截请求并修改请求参数
- nodejs http调用报错:socket hang up
- ** ERROR (nifti_image_write_hdr_img2): cannot open output file
- AB testing之两大陷阱
- 数学建模——多元分析、综合评价与决策
- 硬盘计算机类比推理,广西公务员考试类比推理每日练习(2016.11.23)
- P1747 好奇怪的游戏
- 二叉树_斜月沉沉藏海雾,碣石潇湘无限路
热门文章
- 基于单片机步进电机ppt答辩_基于MCU和DSP的步进电机控制技术分析
- 【开源项目】基于FFmpeg的PCM和RGB数据统一封装
- python快速排序算法循环_算法:快速排序的Python实现
- 信工干货||C语言中的运算符和表达式
- APP 文档服务器,app服务器
- grad在python什么模块_深度学习(Deep Learning)基础概念1:神经网络基础介绍及一层神经网络的python实现...
- ggplot2中显示坐标轴_R可视化08|ggplot2图层标度图层(scale layer)图例篇
- mysql ignore 1 lines_MYSQL使用笔记(1)
- ajax php 投票,PHP 实例 AJAX 投票
- python逻辑运算符的使用_总结Python中逻辑运算符的使用