CakePHP:CakePHPでBasic認証を簡単に設定

CakePHPコントローラーごとにベーシック認証をかけたい場合、
Securityコンポーネントを使用すると簡単に設定することができます。

通常、Basic認証は「.htaccess」で設定しますが、
「.htaccess」を使用しないで設定できるのでとても楽です。

サイト全体に設定せずにコントローラーごとに設定したい場合などは良いと思います。

下記にCakePHPSecurityコンポーネントを使用してコントローラーごとにベーシック認証を設定する方法をメモします。


CakePHPでBasic認証を設定

Basic認証を使用したいコントローラーに下記の設定をします。

コントローラー(Controller)

Securityコンポーネントを使用するよう呼び出します。

class SampleController extends AppController {
	// Securityコンポーネント
	var $components = array('Security');

}

共通処理のbeforeFilter()にBasic認証の設定をします。

	function beforeFilter() {
		parent::beforeFilter();

		// Basic認証の設定
		$this->Security->loginOptions = array('type' => 'basic');

		// ユーザー名、パスワードの設定(複数可能)
		$this->Security->loginUsers = array('hoge' => 'password');

		// 全てのアクションに設定
		$this->Security->requireLogin('*');
	}

上記の設定をするだけなので簡単にBasic認証を設定することができます。
また、アクションごとにも設定することができるので便利です。