以下のようにするとZend_Authコンポーネントを使った認証が可能である。
<?php require_once 'Zend/Db.php'; require_once 'Zend/Auth/Adapter/DbTable.php'; $params = array( 'host' => 'localhost', 'username' => 'name', 'password' => 'pass', 'dbname' => 'dbname', ); $dbh = Zend_Db::factory('Pdo_Mysql', $params); $auth = new Zend_Auth_Adapter_DbTable($dbh, 'user', 'id', 'password'); $auth->setIdentity($userid_from_user_input); $auth->setCredential($password_from_user_input); if($auth->isValid()){ //succeed; //$auth->getResultRowObject(); } else{ //failed; }
Zend_Authではファイルシステムを利用した認証や、Basic認証、ダイジェスト認証などを行う事ができる。
■Basic認証
本題とは関係ないが備忘録として書き留めておく。
パスワードファイルの生成
以下のようにしてパスワードファイルを生成する。
sudo htpasswd -c /etc/httpd/.htpasswd admin
ユーザの追加
sudo htpasswd /etc/httpd/.htpasswd taro
.htaccessの記述
AuthUserFile /etc/httpd/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password, Now!" AuthType Basic require valid-user