データベースの用意

広告

では認証用データベースを作成してみます。今回はMySQLを使います。

データベース名は「authdb」とします。

PEAR::AUTH用のデータベース準備

次にテーブルを作成します。テーブル名は「authtable」です。また「username」カラムと「password」カラムをテーブルに作成します。

PEAR::AUTH用のデータベース準備

各カラムは「varchar」型です。ユーザー名の方は任意の文字数でいいですが、パスワードの方は32文字以上格納できるようにして下さい(これはパスワードをMD5形式でハッシュした値が保存されるためで、MD5のハッシュ値は32バイトの文字列になるためです)。

次にPHPからこのデータベースにアクセスする時のユーザーを作成します。ユーザー名は「authuser」パスワードは「authpass」とします。(認証用のユーザー名ではなく、PHPからMySQLへアクセスする時のユーザーです)。与える権限は「authdb」データベースに対して「SELECT」だけです。

PEAR::AUTH用のデータベース準備

これでMySQL側の準備は終了です。

認証用ユーザーの追加

次にテストを行うための認証用のユーザーを追加しておきましょう。今回はユーザー名「testuser」パスワード「testpass」とします。

パスワードは平文のままではなく、MD5でハッシュした値を格納します。MD5とはMessage Digest Algorithm 5のことで入力された値を128ビットの値に要約するものです。PEAR::Authでは認証の際に入力された値をMD5でハッシュしてデータベースに格納されている値と比較します。

その為、事前にデータベースにユーザーを追加する時にもパスワードはハッシュした値を格納しなければいけません。ここではあくまでテストですのでPHPで用意されている「md5」関数を使ってパスワードである「testpaa」を変換されてみます。

sample5-1.php

<?php
print("testpass -> ".md5("testpass"));
?>

上記の簡単なプログラムを実行して下さい。

PEAR::AUTH用のデータベース準備

上記で表示されている「179ad45c6ce2cb97cf1029e212046e81」がハッシュされた値です。

では「authtable」に行を追加してみます。

PEAR::AUTH用のデータベース準備

では次のページで実際に認証を行ってみます。

( Written by Tatsuo Ikura )