独自のストレージドライバによるPEAR::Auth
たとえばCSV形式の「id,password」を認証ファイルとして使う場合のサンプルを書いてみた。
カスタムコンテナ(ストレージドライバ)
require_once 'Auth/Container.php'; class CustomAuthContainer extends Auth_Container{ var $csvFile; function CustomAuthContainer($csvFile){ //オプションはここで渡す $this->csvFile = $csvFile; } function fetchData($username, $password){ $handle = fopen($this->csvFile,"r"); // まあこのへんは本筋じゃないのでテキトウに。 while($data = fgetcsv($handle, 1000, ",")){ $dat_userid = $data[0]; $dat_password = $data[1]; if($username == $dat_userid and $password == $dat_password){ fclose($handle); return true; // 認証成功の場合はtrueを返す } } fclose($handle); return false; } }
認証する、呼び出し側
require_once 'Auth/Auth.php'; require_once 'CustomAuthContainer.php'; $csvFile = "testidpw.csv"; $myauth = new Auth(new CustomAuthContainer($csvFile)); $myauth->start(); if($myauth->getAuth()){ echo "OK"; }
ってな具合。