最近、プロジェクト アーキテクチャのニーズにより、JAVA と UCENTER を統合することにしました。そのため、ドッキング プロセス中に多くの不愉快な出来事に遭遇しました。多くの研究を行った結果、2 つの大きな問題が最終的に解決され、将来の参照のために記録されています。
このプロジェクトでは、ユーザーが登録時にメールアドレスを入力する必要はありませんが、UCENTER API では、検証に合格するためにメールアドレスを入力する必要があります。最後の手段として、UCENTER コードを変更してそれを回避する必要があります。変更されたコードは次のとおりです:
/uc_server/control/user.php 69行目:
リーリー
掲示板はDISCUZに伴う登録、ログイン、パスワード検索などの操作をブロックするため、シングルサインオンを実装する必要があります。非常に厄介な問題に遭遇しました。メイン サイトに登録されたアカウントが UCENTER に同期された後、UCENTER は他のアプリケーションに通知しません。つまり、デフォルトでは、他のアプリケーション (DISCUZ を含む) は新しいユーザー リストをすぐに登録できません。よく調べた結果、DISCUZ はローカル登録、ログイン、その他のイベント中にのみ UCENTER と同期することがわかりました。その結果、メイン サイトに新しく登録されたユーザーは、BBS にまったく存在しないため、シングル サインインを通じて正常に BBS にログインできません。解決策は 2 つあり、1 つはユーザーが一度 BBS に手動でログインし、BBS 独自のメカニズムにより UCENTER からのユーザー情報を自動的に同期する方法です。もう 1 つは、シングル署名時にユーザー データを自動的に同期するように DISCUZ システム コードを変更することです。リクエストに応じて作成されます。すべての要素を比較検討した結果、2 番目のオプションを採用することが決定されました。変更されたコードは次のとおりです:
/api/uc.php 192行目:
リーリー 。