
【CakePHP】セキュリティコンポーネントでBasic認証を簡単に設置する方法
2019/07/22
CakePHP(1.3)で作成したサイトでデモを行うのに公開サーバが必要となったので、そのページ(コントローラー)にBASIC認証が必要になりました。
その際に使った SecurityComponent(セキュリティコンポーネント)経由でBASIC認証する方法です。
※なお、以下で解説するのはCakePHP1.3用の方法です。
CakePHP2では以下で解説している方法は廃止されているために、500エラーが発生します。
BASIC認証用コード
適用したいコントローラー(CardsController)に以下を記述します。
[php]
class CardsController extends AppController
{
public $components = array('Security');
public function beforeFilter() {
// 認証
$this->Security->loginOptions = array('type' => 'basic');
$this->Security->loginUsers = array('[認証ID]' => '[パスワード]');
// 認証が必要なアクションの指定(特定アクションが設定可能)
$this->Security->requireLogin('*'); // *で全アクションを指定
}
}
[/php]
これだけで完成。
簡単すぎる解説
beforeFilter に「セキュリティコンポーネント」を利用した認証を設定しています。
loginUsers配列に、認証IDとパスワードを設定するだけ。
requireLoginに「*」で、コントローラー中の全アクションを指定。
カンマ区切りで指定のアクションで認証させる、ということも可能です。
パスワードが平文というのがアレですが、簡単な認証でしたらこれで十分ということで。
[tgAmazonItemLookup asin="B003WWRDDA" related="1"]