CakePHPでBasic認証対応ページを作る

  • 2008年7月30日 18:29
  • php

1.2だとBasic認証対応ページを作るのも超簡単です。

対応させたいControllerにSecurityコンポーネントを適用

まずSecurityコンポーネントを利用します。

	class HogeController extends AppController {
		var $name = 'Hoge';
		var $uses = array('Hoge');
		var $components = array('Security');
                ...
       }

認証情報を追加

beforeFilterに認証に必要な情報を追加します。

		function beforeFilter(){
			parent :: beforeFilter();			

			$this->Security->loginOptions = array('type'=>'basic');
			$this->Security->loginUsers = array('katsuma'=>'katsukatsu');
			$this->Security->requireLogin('*');

		}

ここではUser:katsuma, Pass:katsukatsuの認証情報で、全アクションで認証を必要とさせています。認証を特定のアクションのみに限定させたいときは、requireLoginメソッドで、認証を実行するアクション名のリストを指定します。基本的には必要なことはこれだけです。簡単!

Formは要注意

一点、要注意な事項としてFormを必要とするView、たとえば何らかのPostを実行するようなFormのViewがあるときに、そのFormを構成する要素はすべてFormヘルパを利用する必要があるということです。

inputタグなんかの要素はもちろん、たとえばformタグを書き出すときも

<form action="/Hoge/add"

とかじゃダメで、

<?php e($form->create('Hoge', array('action'=>'add')))?>

じゃなければダメです。(こうしないと認証がかからない)

これはどうもヘルパを利用すると、Tokenのようなものを全要素に対して自動的に追加して、このTokenがちゃんと追加されていないとSecurityコンポーネントが働かないようです。「formタグくらいどうでもいいだろー」とタカをくくってて、痛い目にあったので皆さんもご注意ください。。

関連広告

Trackbacks:1

TrackBack URL for this entry
http://blog.katsuma.tv/mt-tb.cgi/163
Listed below are links to weblogs that reference
CakePHPでBasic認証対応ページを作る from blog.katsuma.tv
CakePHP 1.2 の Basic 認証設定があまりにも簡単すぎる from ラボブログ 2009-05-10 (日) 21:57
スパイスラボ神部です。 ちょっと前から悩んでいたのですが、CakePHP でサイト開発をするとき、Basic 認証はどうすればいいのか…という問題がありま...

Home > php > CakePHPでBasic認証対応ページを作る

Search
Feeds

Return to page top