PEAR Auth で認証メモ

すごい簡単にできてしまう。
PHPのこういうところが大好きだ。

まずは、auth部分のスクリプト。

<html>
<body>
<?php

require_once("Auth/Auth.php");

$params = array(
    "dsn" => "mysql://db_user:db_user_pass@127.0.0.1/db_name",
    "table" => "db_tbl",
    "usernamecol" => "user_col",
    "passwordcol" => "pass_col"
);

$auth = new Auth("DB", $params);
$auth->start();

if ($auth->getAuth()) {
    print("認証成功\n");
    print("ユーザ名:".$auth->getUsername()."\n");
}
else{
    print("認証失敗\n");
}

?>
</body>
</html>

次に実際に認証したいページで上記PHPをrequire。

# cat index.php
<?php
require_once("./auth.php");
if (!$auth->getAuth()) {
    echo "ダメ";
    exit;
}
?>

<HTML>
<HEAD>
<TITLE>AUTH_TEST!!!</TITLE>
</HEAD>
<BODY>

認証したいページのコンテンツ

</BODY>
</HTML>

楽にできるなぁ。

db構成は以下みたいなもので。

> use auth_test
> select * from auth_tbl;
user                   pass
--------------------------------
matsumoto_r       パスワードのハッシュ

ちなみに忘れがちなテキストのハッシュのとり方は以下。

# echo -n "matsumoto_r" | md5sum

nオプションを忘れないように。