scaffoldにBasic認証をかける

scaffoldにBasic認証をかけるやり方です。scaffoldを表に出すなよっていう是非論は横におきます。あと、アクションにベーシック認証をかけているだけなのでscaffoldに限らず使えます。CakePHP1.2.x.x_24.01.2008で確認してます。

CakePHP 管理者サイトでBasic認証を簡単に行うコンポーネント | Shin x blog
http://www.1×1.jp/blog/2008/01/cakephp_adminauthcomponent.html

best practices for admin part of website? – Cake PHP | Google グループ
http://groups.google.co.jp/group/cake-php/msg/4d1200e920b9fe0e

上のコンポーネントに下の投稿の発想を組み合わせて使います。

具体的には、認証コンポーネントのfunction startupの中を書き換えます。
before:

if (!preg_match("/^" . Configure::read('Routing.admin')  . "_/i", $controller->action)) {
return;
}

after:

if (!in_array($controller->action, $controller->protectedActions)){
return;
}

次に、認証を掛けたいコントローラ側に
var $components = array(‘ScaffoldAuth’);
var $protectedActions = array(‘index’, ‘add’, ‘edit’, ‘delete’);
という感じに認証コンポーネントと認証を掛けたいアクションを記述します。今回の場合scaffoldなのでindex,add,edit,deleteを書きます。

これでvar $protectedActionsに書いたアクションにはbasic認証がかかります。

今まで私はbakeでadmin_hogeを作ってそこに認証をかけていたのですが、構成を変えるときにMVC全部手動で書き換える必要がありました。これがめんどくさかったのでadmin用にscaffold使えないかな、という所からの発想です。私の場合、key-valueで設定組み合わせが書いてあるconfigsテーブルの編集に使ってます。

もちろん管理画面を作るに越したことはありません。が、俺俺サービスをユーザー側だけ出来た段階で早く公開したいとき等には使えそうです。ただし、パスワードがかかってるとはいえ、簡単に類推できる場所なので脆弱です。必要最小限に。

広告

scaffoldにBasic認証をかける」への1件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中