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タグくらいどうでもいいだろー」とタカをくくってて、痛い目にあったので皆さんもご注意ください。。
- Newer: 自家製ジンジャーエールに挑戦
- Older: BlogをiPhone対応させてみました
Google Adsense
Social bookmark comment : 0
No comment.
Comment : 0
Trackback : 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 認証はどうすればいいのか…という問題がありま...
2008/07/30 (Wed)