PEARのAuthを使う

投稿日:



Authは認証を行なうためのPEARのライブラリです.
非常に簡単にユーザ認証を実装できます.
ここではMySQLを使ってAuthで認証を行なう方法を紹介します.

まずデータベースを作りましょう.
データベース名:login
テーブル名:auth

CREATE DATABASE login;

CREATE TABLE auth (
  username VARCHAR(50) default '' NOT NULL,
  password VARCHAR(32) default '' NOT NULL,
  PRIMARY KEY (username),
  KEY (password)
);

あとは auth.php という名前で以下のソースを動かします.

<html> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"> </head>

<?php

require_once("Auth.php");

// ログインフォーム
function loginFunction()
{
  echo "<div id=\"loginform\">";
  echo "<form method=\"post\" action=\"auth.php\">";
  echo "<h2>ログインフォーム</h2>";
  echo "<input type=\"text\" name=\"username\"></br>";
  echo "<input type=\"password\" name=\"password\">";
  echo "<input type=\"submit\">";
  echo "</form>";
  echo "</div>";
}

// ユーザ追加のためのフォーム
function adduserForm()
{
  echo "<div id=\"adduser\">";
  echo "<form method=\"post\" action=\"auth.php?add=1\">";
  echo "<h2>ユーザ追加</h2>";
  echo "<input type=\"text\" name=\"username\"></br>";
  echo "<input type=\"password\" name=\"password\">";
  echo "<input type=\"submit\">";
  echo "</form>";
  echo "</div>";
}

// パラメータの設定
// localhostのデータベース名 login,テーブル名 auth の場合
$params = array(
  "dsn" => "mysql://root:@localhost/login",
  "usernamecol" => "username",
  "passwordcol" => "password",
  "table" => "auth",
  "cryptType" => "md5"
);

$myauth = new Auth("DB", $params, "loginFunction");
// 認証開始
$myauth->start();

// ユーザ追加のためのフォーム表示
adduserForm();

if (isset($_GET['add'])) {
// ユーザを追加のときは以下のように実行
  $myauth->addUser($_POST['username'],$_POST['password']);
}

if (isset($_GET['logout'])) {
// ログアウト処理
  $myauth->logout();
  echo "ログアウトしました</br>";
}

if ($myauth->getAuth()) {
// ここに認証後のコードを書く
  echo "現在ログイン状態です</br>";
  echo "<a href=\"auth.php?logout=1\">ログアウト</a>";
}

?>
</html>

実際に動かして動作を確認しましょう.
auth.php にアクセスし,ユーザを追加して,ログインしてみてください.
現在ログイン状態ですと表示されます.



ブログランキング・にほんブログ村へ  ブログランキング・にほんブログ村へ

- スポンサードリンク -