このブログを作成している際に、特定の記事だけ簡単な認証を行いたかったので、 PHP で BASIC 認証 っぽいことをやってみた。
実装は簡単で、ユーザが BASIC 認証を行った場合 PHP_AUTH_USER と PHP_AUTH_PW 環境変数にその際のユーザ名とパスワードが復号化されて格納される。
これを PHP で認証して、違ったら 401 エラーを返せばいいだけ。
$signin = false;
if (isset ($_SERVER['PHP_AUTH_USER']) &&
isset ($_SERVER['PHP_AUTH_PW']))
{
if ($_SERVER['PHP_AUTH_USER'] == 'masaki' &&
$_SERVER['PHP_AUTH_PW'] == 'password')
{
$signin = true;
}
}
if (! $signin)
{
header('WWW-Authenticate: Basic realm="Enjoi Blog"');
header('HTTP/1.0 401 Unauthorized');
print "Error 401";
exit;
}