このブログを作成している際に、特定の記事だけ簡単な認証を行いたかったので、 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; }