CakePHP

【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"]

-CakePHP
-, ,