AppSeedのアプリ開発ブログ

アプリ開発会社AppSeed(アップシード)開発担当のブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsや備忘録、アプリ開発に役立つ情報を発信します。

【PHP】ベーシック認証を特定のページに実装する方法

https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcScS4wA_hHDvXFFZ3TjpEzxjO8fTpH39SDiNRpr17PhmIdfKgGDgA

最近、サーバー開発も始めたので、ユーザー認証方法の一つである、ベーシック認証を実装してみました。実際にやって見るとどんな仕組みなのかもある程度できるし、こんな簡単にできるものなんだなと思いました。



Basic(ベーシック)認証について

【PHP】ベーシック認証を特定のページに実装する方法

ベーシック認証は、下記のサイトによると、ポップアップが表示されて、正しいユーザーIDとパスワードを入力させる認証方法です。

www.shadan-kun.com

Basic認証とはWeb上で利用できる認証システムです。
Webサイトを運用したことがある人であれば一度は見たことがあるかもしれません。
Basic認証が設定されているページへアクセスすると、ポップアップが表示されます。
そこに前もって設定してあったIDとpasswordを入力することで、ログインすることができます。


簡易的な認証なので、セキュリティレベル的にはあまり高くないため、これだけだと心配ではありますが、
こうゆう認証方法もあるということは認識しておこうと思います。


Basic(ベーシック)認証を特定のページに実装する

特定のページに以下のような実装をすればBasic認証を設定することができます。

<?php
         //Basic認証
	$user = 'user';
	$pass = 'pass';
	
	if(isset($_SERVER['PHP_AUTH_USER']) && ($_SERVER["PHP_AUTH_USER"]==$user && $_SERVER["PHP_AUTH_PW"]==$pass)){
		print "{$_SERVER['PHP_AUTH_USER']}";
		print'さんログイン中<br/>';
		print'<br/>';
	} else {
		header("WWW-Authenticate: Basic realm=\"basic\"");
		header("HTTP/1.0 401 Unauthorized - basic");
		echo "<p>Unauthorized</p>";
		exit();
	}
?>

上記の例の場合、ポップアップで入力されたIDとパスワードが「user」と「pass」の場合、userさんログイン中と表示されます。
間違っている場合はUnauthorizedが表示されるだけで、アクセスしたページを参照できません。