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