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 }
时间: 2024-10-10 23:18:51

Discuz & UCenter 修改手记 - 2014.12.19的相关文章

2014第19周日

晚上好不容易可以一个人安静一段时间,不自觉的上了知乎1个多小时,感觉很多只有作者能自圆其说的东西我都会觉得很有道理,看来我也很必要提升自己的知识修养和判断力.两个多小时过去了,我原来纠结的一些心结依旧存在,我该如何坦然接受甚至忘掉哪些无法挽回到过去?我该如何判断当前事或某件事重要性?1.判断当前事对未来3-5年的重要性,幻想站在未来的时空看现在,十年后回忆现在或者百年后闭眼临终前来审视现在,找出最值得做最有意义的事.2.生命死亡倒计时法,假定只有半年或三个月能活,我会做那些该做的事.3.不设任何

2014.8.19穷举法

穷举法(for循环嵌套) eg: 1 //100购物券,香皂2元,牙刷5元,洗发水15元,购物券不找零,每样至少买一个,哪个组合能吧100元正好花完 2 int count = 0; 3 for (int i = 1; i <= 40; i++)//香皂穷举 4 { 5 for (int j = 1; j <= 17; j++)//牙刷穷举 6 { 7 for (int k = 1; k <= 7; k++)//洗发水穷举 8 { 9 if (2 * i + 5 * j + 15 * k

LAMP开发之环境搭建(2014.12.7在ubuntu下)

Ubuntu下搭建LAMP环境 前言:学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP.WAMP.MAMP等.这里我搭建的是LAMP环境,即Linux.Apache.MySQL.PHP环境.网上搭建方法也有很多,但都不是最新的,本搭建时间为2014.12.07. 一.搭建环境 Lenovo Y470 VMWare9.0 Ubuntu 14.04.1 LTS (Trusty Tahr):ubuntu-14.04.1-desktop-i386.iso二.安装软件1

12.19&amp;12.20 -基础命令练习二

12.19&12.20 基础命令练习二 第1章 Linux开机启动过程 linux启动过程 1.开启开关 2.bios开机自检 3.mbr引导 4.grub菜单 选择内核 5.加载内核 6.启动init进程  init进程是linux启动的时候运行的第一个进程 7.从/etc/inittab读取运行级别 8.根据/etc/rc.d/rc.sysinit 初始化系统 (设置主机名 ip地址) 9.根据运行级别启动对应的软件(开机自启动软件) 10.运行mingetty 显示登录界面 第2章 PAT

【谜客帝国】第九届老爱原创谜会(2014.12.30)

谜客帝国第九届老爱原创谜会(2014.12.30)主持:瓷       计分:晶莹1.现有十人达标准(字)规.注:双扣2.乱呈能,别下毒(11笔字)理3.难得知错又开口(汉人)吕雉4.高校新生载入校(3字年纪比较词)大一岁5.这些问题都不懂(即物赠)几盘咸菜6.太太在聚餐(3字点心)老婆饼7.独活(期货术语•秋千格)做单8.打的付款,节省消费(即赠物)十二支鲜花9.对林散之有安排(2字植物)桉树10.这图可更新(象声词)叮咚11.“苍天骑士”拍马屁(3字外神话人物•上楼格)阿修罗.注:神官“苍天

0000pt; margin-bot《怎样才能不得病》黄帝内经系列-2014.5.19群分享-健康养生

   2014/5/19 10:08:06 是以志闲而少欲,心安而不惧,形劳而不倦,气从以顺,各从其欲,皆得所愿. 人身体的汗是心血的变现.由于心主血脉,血全身无处不有,汗水也可能全身都出.所以中国古人的锻炼原则是"形劳而不倦",再怎么活动也不能让人体超负荷地去运转,所以不可以大汗淋漓.   小孩为什么爱吃糖?大家知道吗?    2014/5/19 10:08:06 "少欲"就是人不要有过多的欲望,要让所有的欲望有一个界限,这样就能做到"心安而不惧&quo

12.17 Nginx负载均衡;12.18 ssl原理;12.19 生产ssl密钥对;12.20 Nginx配置ssl

扩展: 针对请求的uri来代理 http://ask.apelearn.com/question/1049 根据访问的目录来区分后端web http://ask.apelearn.com/question/920 12.17 Nginx负载均衡 1. 安装dig命令: [[email protected] ~]# yum install -y bind-utils 2. 用dig获取qq.com的ip地址: [[email protected] ~]# dig qq.com 3. 创建ld.co

易轩网络更新页面————————2014.12.13发布

易轩网络更新页面: 最新更新动态: ★易轩★改软件标题工具—)—)豪华版              出炉! 工具大小:52.0 MB(若大于该大小则视为病毒文件处理) 工具功能:更改你想要更改软件的标题(则运行时的名称) 工具版本:v1.0.0.0 工具是否达标:是 工具是否报毒:暂未测试(若大小一致却依然报毒,请添加信任或关闭杀毒软件) 工具下载地址:http://yunpan.cn/cfxEAPKpPxzfg  提取码 ba30 工具作者:易轩 联系方式:邮箱:[email protecte

【ACOUG】2014.12.27ACOUG年会

祝贺ACOUG~2015 越来越好   刚刚过完2014年圣诞节,就迎来了ACOUG的最后一场沙龙,也作为ACOUG的本年度年会,老朋友相聚大家特别开心,下面来看看当时的场景ACOUG开始啦 ACOUG VP 仇实 me 斑点狗 老盖在演讲ing 老盖and me 乐奕and me 圣诞树很漂亮 Leonarding2014.12.27北京&winter分享技术~成就梦想Blog:www.leonarding.com