Top / PEAR / Auth


 #setlinebreak(on)
 * PEAR::Auth ユーザー認証 [#l67269c4]
 
 [[ログイン画面表示メソッド drawLogin>PEAR/Auth/drawLogin]]
 [[ユーザー別認証>PEAR/Auth/_sessionName]]
 [[次期バージョン PEAR::Auth 1.3.x>PEAR/Auth/1.3.x]]
 
 ** 概要 [#ta42c19a]
 
 #htmlinsert(googleAdsense.html)
 #ref(http://dozo.rgr.jp/img/img20_file.png,right,nolink,around,PHP::PEAR)
 
 導入はとても簡単。
 で、結構な種類の認証システムが利用可能。
 
 (ノ・・)ン。。。。。。(((●コロコロッ
 
 私は[[PEAR:http://pear.php.net/]]推進派。
 何でもかんでもこれを使おうとします。
 そして、手を抜きまくり。
 (;^_^A アセアセ…
 やっぱり[[PHP:http://www.php.net/]]でものを作るときは簡単でないとね。
 
 [[PEAR::DB:http://pear.php.net/package/DB]]についてはそこそこ見かけるようになったので
 そっちに譲ります。[[スタックアスタリスク:http://www.stackasterisk.jp/tech/php/searchAction.do?cid=33]]
 で私も少し書いてますが。
 (..;)(..;)
 
 ユーザー認証はだいたい、
 「プログラムが必ず呼び出す」ところに作成する。
 それは[[PEAR::Auth:http://pear.php.net/package/Auth]]
 http://pear.php.net/package/Auth
 も同じ。
 
 このパッケージのおもしろいところは、
 - 初期値を変更するだけでログイン情報をいろんなところから取得できる(抽象化)
 - ログイン画面を表示するところまでパッケージ化されている
 - パスワードの暗号化(MD5,Crypt,ユーザー定義関数)に対応
 といったところかなぁ。
 
 ユーザーリストのデータベースにはいろんなものが利用できます。
 - データベース Database
 - ファイル     File
 - メールサーバ IMAP, POP3, vpopmail
 - UNIXユーザー SMBPasswd, LDAP, RADIUS
 - XML通信      SOAP
 (種類分けあってるかなぁ。 (..;) )
 
 …で、ですねぇ。 
 一番手っ取り早く構築するのはやっぱりデータベース。
 デフォルトでデータベースを利用することになっている。
 [[PEAR:http://pear.php.net/]]のデータベース抽象化クラスは
 - [[PEAR::DB:http://pear.php.net/package/DB]]
 - [[PEAR::MDB:http://pear.php.net/package/MDB]]
 
 に対応している。
 お好きな方をどうぞ。
 
 ログイン画面はデフォルトで付属しています。
 もちろん自身で作成することも可能です。
 その場合
 - ログイン画面を表示する関数を作成し関数名を指定
 - drawLoginメソッドをオーバーライドした継承クラスを作る
 
 のいずれかをすればできます。
 ただ、制約条件があって、
 
 - ユーザー名にあたるエレメント名が[username]で固定
 - パスワードにあたるエレメント名が[password]で固定
 
 です。
 
 ソースコードはだいたいこんな感じ
 
  <?php
  require_once "Auth/Auth.php";
  $params = array(
   "dsn" => "mysql://dozo:desu@yoroshiku/ne", // PEAR::DB参照
   "table" => "myAuth", // テーブル名
   "usernamecol" => "myUserColumn", // ユーザー名にあたるカラム名
   "passwordcol" => "myPasswordColumn", // パスワードにあたるカラム名
   "cryptType" => "none", // 暗号化(デフォルトはMD5)
  );
  $a = new Auth("DB", $params /* ,  "LoginFunction" */);// インスタンス生成
  $a->start();// 認証開始
  if (!$a->getAuth()){// 結果を判別
      echo "失敗";
      exit();
  }
  echo "成功";
  session_regenerate_id(); // セッション偽装防止
  ?>
 
 
 バグ?
  criptType = none の時でパスワードが数字のみの時、
  型がint型になるため頭の0が使えなくなる。
 -ss -- [[ss]] &new{2005-11-30 17:27:43 (水)};
 -細かい事ですが。LoginFunctionのcが抜けていませんか? -- [[b]] &new{2006-02-06 14:36:38 (月)};
 -(゜◇゜)ガーン!! まぁ、コメントアウトの中なのでご容赦を。 -- [[dozo]] &new{2006-02-12 12:29:23 (日)};
 -setIdleとかsetExpireで期限切れの時間を設定して、自動ログアウト後にブラウザの更新をすると、何も入力してなくても自動ログインできちゃうのですが...回避方法ご存知の方いますか? -- [[yc]] &new{2006-02-16 19:59:10 (木)};
 -(↑続き)session_cache_limiterはnocacheにしてます。 -- [[yc]] &new{2006-02-16 20:00:17 (木)};
 -↑クッキーが残ってるとか? -- [[2tak]] &new{2006-03-16 20:39:05 (木)};
 -Hello, nice site look this:<a href="http://chanelhandbags.free-bb.com/">chanel handbags</a> <a href="http://www.stormloader.com/members/handbags07/handbags.htm">handbags</a> <a href="http://www.spazioforum.it/forums/?mforum=replicahandbags">replica handbags</a> <a href="http://coachhandbags.free-bb.com/">coach handbags</a> http://chanelhandbags.free-bb.com/ http://www.stormloader.com/members/handbags07/handbags.htm http://www.spazioforum.it/forums/?mforum=replicahandbags http://coachhandbags.free-bb.com/ -- [[Bill]] &new{2007-01-10 03:07:05 (水)};
 
 #comment
 


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Third Project
証券会社ランキング比較