自分のサイトのユーザーのログインをphpBBに統合するにはどうすればよいですか?
質問
phpBBの変更に関して、初心者の質問と思われるものについて、何らかの助けが必要です。
PHPでシステム全体を開発しました。phpBBを統合して、再度ログインせずにフォーラムに移動してシームレスに投稿できるようにします。
現在、phpBBユーザーテーブルをシステムのユーザーテーブルとして使用する(そして、私のウェブサイトではなくphpBBに登録する)ことは残念ながらできません(システムを再構築するには、独自のシステムを構築するよりも多くの作業が必要です)基本的なフォーラム)。
特定のユーザーIDがログインしているとphpBBに信じ込ませる方法をハックできると仮定していますが、そのユーザーはphpBBのusersテーブルに存在しません(ほとんどどこでもエラーが発生すると思われます) 。
すべてのチュートリアルとフォーラムの投稿は、phpBBがプライマリであることが暗示されています。他の方法でそれを行う方法が見つかりませんでした。
これを解決する唯一の方法は、両方のテーブルを相対的に同期させることだと思います。
今、両方のユーザーテーブルを同期できる場合、両方のサイトを統合し、サイトのログインとユーザーテーブルを「プライマリ」として維持する最良の方法は何ですか。 ?
また、phpBBのusersテーブルにレコードを作成するときに留意すべき点はありますか?または、把握するのは比較的簡単ですか?複数のテーブルがある場合、どのテーブルに書き込むべきですか?
解決
これは古い質問ですので、あなたは今までに何かを解決したと確信していますが、将来リファクタリングする必要がある場合、これはphpBB3の認証プラグインで完全に可能です:
http://wiki.phpbb.com/Authentication_plugins
現在、phpBBが「セカンダリ」であるものに取り組んでいます。システム、そしてそれはかなりうまくいっている。
他のヒント
今日、このタスクに取り組みました。調査の結果、認証プラグインが良い例です。 phpjanにDjangoセッションを許可する
以前にphpBBをサイトに統合しましたが、phpBBのログインシステム/ユーザーテーブルを主なものとして使用しました。 phpBBは非常に高度なフォーラムソフトウェアであるため、ユーザーとログインシステムを完全に変更するのはかなり時間がかかるプロジェクトです。
サイトのログインをプライマリとして使用する必要がある場合、 PunBB を使用しました。 PunBBを変更する方がずっと簡単でした。
プライマリとして独自のログインを使用し、phpBBを使用する必要がある場合、最も簡単な方法はテーブルの同期を維持し、誰かがログインしたときに両方のログインスクリプトを呼び出すことです。
phpBBにデータを挿入する場合、usersテーブルは非常に簡単です。各エントリにはユーザーの基本情報が含まれており、ユーザープロファイルのカスタムフィールドがある場合は、 profile_fields
および profile_fields_data
テーブルに移動します。
1つの注意すべき点は、phpBBがユーザーパスワードを暗号化する方法です。そのためには、 phpbb_hash($ password)
というphpBBの関数を使用する必要があると思います。ファイルで宣言されています
phpbb / includes / functions.php
phpBBログインコードについては、ファイル phpbb / includes / functions.php
以下を使用してphpBBにログインできます:
$result=$auth->login($username, $password);
if ($result['status'] == LOGIN_SUCCESS) {
echo "You're logged in";
} else {
echo $user->lang[$result['error_msg']];
}