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