整合 UCenter 多應用同步登入後,前台會員註冊提交成功(數據已寫入),但頁面無跳轉、無提示、卡死在註冊頁。
經斷點調試發現:api/ucenter/control/user.php 第 83 行的 onregbbs() 函數默認執行,試圖向 Discuz! 論壇寫入註冊數據。若 Discuz! 端異常或通訊超時,導致流程阻塞,前端無響應。
在 module/member/register.inc.php(約 125 行)註冊處理邏輯中:
if ($MOD['passport'] == 'uc') {
$uid = uc_user_register($passport, $post['password'], $post['email']);
if ($uid > 0 && $MOD['uc_bbs'])
uc_user_regbbs($uid, $passport, $post['password'], $post['email']); // 此行導致阻塞
}
直接註釋掉第二條同步語句(或根據業務需求改為異步隊列處理):
// if ($uid > 0 && $MOD['uc_bbs']) uc_user_regbbs($uid, $passport, $post['password'], $post['email']);
註釋後,註冊流程恢復正常跳轉,UCenter 主站同步已由第一行 uc_user_register 完成,Discuz! 端同步可由獨立任務處理,避免阻塞主流程。