2006年07月17日

いちばん簡単な認証システム

CakePHP には、ACL という認証システムが標準で入っています。しかし、ログイン画面やアクセスチェックなどは自前で用意する必要がありますし、データベースでユーザと権限を管理するなど、かなり本格的なものです。

自分が今、作成しているアプリケーションは、少人数(または一人)で管理できればいいものなので、単純にパスワード一つを登録できて、それで全体の認証チェックをしてくれればよい、という程度のものです。

そこで簡単なスクリプトを書いてスニペットに登録してみました。
データベースを使わず、ユーザ名とパスワード一つでアプリケーション全体を守るタイプのものです。ソースを見れば一目瞭然なコードです。

http://cakeforge.org/snippet/detail.php?type=package&id=20

関心を持ってくれたShane Shepherd さんが、CAKE_ADMIN ルーティングの場合にはどうできるか、というアイデアを出してくれました。

http://www.shepherdweb.com/2006/07/14/single-user-admin-area-authentication-with-cakephp/

これを使えば、アプリ名/admin/コントローラ/アクション というadmin専用の形での認証に使えます。

自分でも必要になったのでちょっと調べてみたところ、こういう書き方もできるかな、と思いました。

class AppController extends Controller {

var $components = array(’SdAuth’);

function beforeFilter()
{

//for CAKE_ADMIN(admin) rooting.
if(defined(’CAKE_ADMIN’) && !empty($this->params[’admin’])){
//start admin check.
if($this->SdAuth->isloggedin() == FALSE)
{
//$this->layout = “login”;
***$this->layout = '';
***$this->render('../layouts/login');
***exit();
*など。pm11opさん、ありがとうございます。*
*http://pm.11op.net/2007/12/post-28.php*
} else {
$this->layout = “admin_default”;
}
}

これだと、/admin/ を間にはさんでアクセスした場合にのみ、認証チェックをかけてくれます。


posted by SDozono at 14:38| ロサンゼルス 🌁| Comment(0) | TrackBack(1) | CakePHP Controller | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

「いちばん簡単な認証システム」が安全ではない件
Excerpt: 最初に断っておきますが、 いつも参考にしてる CakePHP のおいしい食べ方の...
Weblog: pm11op のブログ
Tracked: 2007-12-18 02:11
手(パー)To make a comment: Please type your name and comment. at the validation field box, type 'cakephp'. And there two glay buttons. "Preview"/"Submit". Thank you!
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。