Discuz3.5版本整合Java 登录

1.下载

Discuz下载:官网
Discuz-api-for-java下载:蓝奏云

2.配置

1.登录ucenter后台,应用管理,新建一个应用。
在这里插入图片描述
在这里插入图片描述
以上配置uCenter如果能访问到 http://172.16.22.103:13000/api/uc.php,就会显示 通信成功
在这里插入图片描述
2.修改Java配置
在这里插入图片描述
运行testLogin()方法,如果不出意外会得到一个js代码,例:

<script type="text/javascript" src="http://172.16.22.103:8888/api/uc.php?time=1701070907&code=d37aIGx8EjkPmRkzA9q6HjS0v0UTuvw6tb0V2sS9ZJuhtU1SPhWOODVx9HxoPcfBavT%2FFcQx6YqJofNpqsF%2B%2Bfx5BYuqkBYf6HBGjehARDK2nGrFMEs%2FQFJISyJHW%2FeWYkQ%2B8%2BOXgsDm49dWAbkVxAyYz2YqCsIXHO%2FcIjzTGoRKjKirIlR1ssdF6ZwzQHqHurzG5wZESg" reload="1"></script>

这个代码输出到浏览器,就能实现同步登录效果。

3.修改Discuz代码,实现免激活登录

前提是在我们自己的系统上进行注册、登录。然后对接uCenter
在注册新用户后,调用登录方法,并没有同步,但是,如果再一次,从论坛登录,激活用户。第二次再从Java端登录。就可以实现同步了。这一步就称为手动激活账号。

找到Discuz中的api/uc.php代码,将synlogin函数覆盖
	function synlogin($get, $post) {
		global $_G;

		if(!API_SYNLOGIN) {
			return API_RETURN_FORBIDDEN;
		}

		header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

		$cookietime = 31536000;
		$uid = intval($get['uid']);
		// if(($member = getuserbyuid($uid, 1))) {
		// 	dsetcookie('auth', authcode("{$member['password']}\t{$member['uid']}", 'ENCODE'), $cookietime);
		// }
		if(($member = getuserbyuid($uid, 1))) {
    		dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
		} else {
		    if(!function_exists('uc_get_user')) {
		        loaducenter();
		    }
		    $user = uc_get_user($uid, 1);
		    if($user) {
		        $time = time();
		        DB::query("REPLACE INTO ultrax.pre_common_member SET `uid`='{$user[0]}' , `username`='{$user[1]}' , `password`='".md5(random                       (10))."' , `email`='{$user[2]}' , `adminid`='0' , `groupid`='10' , `regdate`='{$time}' , `emailstatus`='0' , `credits`='0' ,                         `timeoffset`='9999'");
		        DB::query("REPLACE INTO ultrax.pre_common_member_status SET `uid`='{$user[0]}' , `regip`='{$_G['clientip']}' ,                          `lastip`='{$_G['clientip']}' , `lastvisit`='{$time}' , `lastactivity`='' , `lastpost`='0' , `lastsendmail`='0'");
		        DB::query("REPLACE INTO ultrax.pre_common_member_count SET `uid`='{$user[0]}' , `extcredits1`='0' , `extcredits2`='0' ,                         `extcredits3`='0' , `extcredits4`='0' , `extcredits5`='0' , `extcredits6`='0' , `extcredits7`='0' , `extcredits8`='0'");
		        DB::query("REPLACE INTO ultrax.pre_common_member_profile SET `uid`='{$user[0]}'");
		        DB::query("REPLACE INTO ultrax.pre_common_member_field_forum SET `uid`='{$user[0]}'");
		        DB::query("REPLACE INTO ultrax.pre_common_member_field_home SET `uid`='{$user[0]}'");
		        DB::query("UPDATE ultrax.pre_common_stat SET `register`=`register`+1 WHERE `daytime` = '".date('Ymd', $time)."'");
		        if(($member = getuserbyuid($uid, 1))) {
		            dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
		        }
		    }
		}
	}

重要:请确保你的数据库表名与代码中的一致!

修改完成后,就实现了免激活登录。

  • 18
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Discuz X3.4是一个基于PHP+MySQL的开源论坛系统,用于构建和管理在线社区。Discuz X3.5是Discuz X3.4的升级版本,在功能和性能上进行了一些优化和改进。 升级Discuz X3.4到X3.5有以下几个步骤: 1.备份数据库和文件:在升级前,首先要备份好现有的数据库和文件,以防止升级过程中出现意外情况导致数据丢失。 2.下载Discuz X3.5:可以从官方网站下载最新的Discuz X3.5版本,并解压到服务器上。 3.覆盖文件:将下载的Discuz X3.5版本中的文件覆盖到原有的Discuz X3.4文件夹中,确保新版本的文件全部替换到旧版本的文件。 4.更新数据库:通过浏览器访问论坛的“/install/update.php”路径,按照提示进行数据库的更新操作。注意,在更新前一定要确认已经备份好数据库,以免发生数据丢失。 5.升级插件和模板:升级完成后,可能需要更新一些插件和模板以适应新版本Discuz。在升级过程中,需要根据情况重新安装和设置插件,确保插件的兼容性和正常运行。 6.测试和调整:升级完成后,需要对论坛进行全面测试,确保各项功能的正常运行。如果发现任何问题,可以根据错误提示和日志进行排查和调整。 总体来说,升级Discuz X3.4到X3.5相对比较简单,但仍然需要谨慎操作并备份好相关数据。升级后,可以享受到新版本的功能和性能改进,提升论坛的用户体验。若遇到问题可参考官方文档或在Discuz官方论坛上寻求帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值