3

まず、最終目標を定義します。

Web サイトの認証データ/資格情報とアクセス制御を管理するために、Wordpress (バージョン 2.8) を使用したいと考えています。サイトの大部分はWordpressを使用しますが、一部のページはWordpress環境外で構築します。これらのページは、Wordpress データベースに格納されたユーザー認証データを参照して、アクセスに関する独自の決定を下すことができる必要があります。

だから、質問:

Wordpress はどのようにしてユーザー認証データをデータベースに保存するのでしょうか?


この回答の最初の部分は簡単です。Wordpress データベース内には、プライマリ ユーザー データを保持するテーブルがあります。このテーブルのデフォルト名は「wp_users」だと思いますが、Wordpress のセットアップ方法に基づいて変更される可能性があります。このテーブルには、それぞれユーザー名とパスワードのデータを保持するフィールド「user_login」と「user_pass」が含まれています。

「user_login」は単純なプレーン テキスト フィールドであるため、簡単にアクセスできますが、パスワードはソルト化およびハッシュ化されています。これは、まだ決定する必要がある最初の事柄につながります: Wordpress が "user_pass" に格納する文字列を生成するために使用するソルティングとハッシュのプロセスは何ですか?

開いたままの他の部分は、Wordpress がその「ロール」をどこに/どのように保存するかです。私のインストールでは、これらの役割のデフォルトは、管理者、編集者、作成者、寄稿者、購読者です。私が見ていないのは、これらの役割が個々のユーザーにどのように関連付けられているかです。また、これらの役割は変更できますか?


つまり、要約すると、本当の質問は 3 つの部分に分かれています。

1) Wordpress がユーザーの平文パスワードを "wp_users" データベース テーブルの "user_pass" 列に格納されている文字列に変換するために使用する特定の方法は何ですか?

2) 個々のユーザーとそれぞれの Wordpress の「役割」との間のリンクはどこに保存されていますか?

3) Wordpress の「役割」を変更して、名前を変更したり、追加/削除したりできますか?


注: 別の方法として、Wordpress 以外のページで Wordpress の Cookie をチェックしてアクセスを判断する方法があることは承知しています。これらに沿って別の質問を作成しますが、この質問の目的として、Wordpress 以外のページが実際の Wordpress データベースを利用してアクセス制御を決定する方法に焦点を当てています。

4

1 に答える 1

3
  1. Wordpress は、ポータブル PHP パスワード ハッシュ フレームワークを使用します。この質問も参照してください: WordPress はどのタイプのハッシュを使用しますか?
  2. デフォルトでは、この関連付けはキーwp_usermetaの下のテーブルにありますwp_user_level
  3. プラグインなしではありません (または、Wordpress のコードまたはデータベースを編集せずに)

bbPressは Wordpress のユーザー データベースを共有するため、 bbPressのコードを参照することをお勧めします。

于 2009-06-29T16:39:03.043 に答える