Discuz3.5版本整合Java 登录
  gNBSs4nizMqi 2023年11月28日 21 0

1.下载

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

2.配置

1.登录ucenter后台,应用管理,新建一个应用。

Discuz3.5版本整合Java 登录_API

Discuz3.5版本整合Java 登录_php_02

以上配置uCenter如果能访问到 http://172.16.22.103:13000/api/uc.php,就会显示 通信成功

Discuz3.5版本整合Java 登录_Java_03

2.修改Java配置

Discuz3.5版本整合Java 登录_Java_04

运行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);
		        }
		    }
		}
	}

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

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

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月28日 0

暂无评论

推荐阅读
gNBSs4nizMqi