トップ > ラボブログ

ラボブログ

« 話題席巻の Google Streetview ライクなパノラマムービーの作り方 | メイン | カンヌはWeb開発者のゴールになり得るか »

CakePHP の AuthComponent と格闘中

あとで読む

cake-logo%5B1%5D.png


ラボ神部です。昨日からCakePHP の AuthComponent と格闘中です。


あまりにもにっちもさっちもいかなくなってしまったので、authtest というプロダクトを作り、其処にたぶんリリースされたばかりの 1.2.0.7296 RC2 を入れて、一番シンプルな認証テストケースを作ってみようと思います。


インストールが完了した段階から Wiki ライクにこちらのエントリを更新します。


(12/7追記)


この記事を書いた後、なんどか AuthComponent を使うサービスのコードを書きましたが、基本的には


-CakePHP 1.2 の AuthComponent でユーザ管理 (ラボブログ)


の冒頭で書かれているねねとまつの小部屋さんのエントリが必要十分な内容です。そこからたどれるドキュメントも含めて深く読み進めることをおすすめします。

 

 

流れ的なもの

users データベースの作成


CREATE TABLE `authtest`.`users` (
`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`created` DATETIME NOT NULL ,
`modified` DATETIME NOT NULL ,
`username` TEXT NOT NULL ,
`password` TEXT NOT NULL
PRIMARY KEY ( `id` )
) ENGINE = MYISAM


※デフォルトでは、username, password の組でないとユーザ登録しても users データベースに登録されない


ユーザ登録部分は、【CakePHP】AuthComponentについてのまとめ 【ざっくり基本編】 | ねねとまつの小部屋 に書いてある通りでうまく行っています(先日のエントリでは疑問点など書きましたが、環境を洗いなおしたらここに書いてあるものだけで確かに十分でした)


では引き続きログイン後に別のモデルの処理に飛ばしたいときのことを考えて見ます。


(8/8追記)


ちょっと壁にぶち当たってます。


所謂 AuthComponentのredirectでハマった|suzukiのCakePHPブログ"Authコンポーネントで、ログイン成功時に・・・" フォーラム - CakePHP Users in Japan あたりで話題になっているリダイレクト先の破壊の問題なのですが・・・結局はここにぶち当たるみたいです


(8/11追記)


"redirect後にセッションが消える" フォーラム - CakePHP Users in Japanを参考に、core.php の CAKE_SECURITYをmiddle にしたとこと、私の環境では解決下っぽい。


しかし、記事で


上記のリンク先では結論としてCAKE_SECURITYをmiddleに変更して様子を見るで終わっているのですが


として明示されている"認証と継続チェック" フォーラム - CakePHP Users in Japan という記事には、この設定について書かれている箇所は2ページ目にあります。"認証と継続チェック" フォーラム - CakePHP Users in Japan うーん、やっぱり phpBB 系フォーラムは情報が見つけにくくてダメだなぁ。


番外編:困ったこととその解決法


RC2 から RC3 に移行するとき困った点


この話とはちょっと関係ないのですが、RC2 から RC3 に移行したときにちょっと困ったところがあったので書いておきます。


1.2 からの $this->form は (1.1 の $this->html でもそうなのでしょうけど)、div => false にしないとレイアウトがしにくいので、出力されたコードをコピペしてハードコーディングしていました。すると RC3 になって出力されるフォームや値の渡し方が変わったらしく、正常に動かなくなってしまいました。


コツをしらないとレイアウトが不便になるとはいえ、ここを適当にやってしまうとあとで雨後書かなくなってしまうということで、form ヘルパーはあまり使い勝手がいいとは感じませんがやはり入出力まわりは変更がない限り CakePHP にじぶんで出力させるのが得策なようです。

 



関連記事



ブックマークに追加する この記事についてTwitterでツイート

トラックバック

このエントリーのトラックバックURL:
http://www.spicebox.jp/cgi-bin/mt/mt-tb.cgi/404

コメント ( 2 )

suzuki さん、こんにちは。
お返事が大変遅れました。


直接的な回答にはなりませんが、まずは Auth コンポーネントを動かすためだけのプロダクトを作ってみて、今動かなくなっているプロダクトとの待避を行うと問題が切り分けられると思います。


私の場合、本当にクリティカルだったのは core.php の CAKE_SECURITYをmiddle にしたことでした。こちらもご確認ください。

suzuki :

suzukiのCakePHPブログの鈴木でございます。
あのろくでもない私のブログを拝見してくださったようで恐縮しております。

ところで、Kanbe様のところでは環境の見直しで、
RC2環境下のAuthが機能しているようですが、
私の環境ではどうもRC2からAuthがうまく動きません...orz

RC1なら何の問題も無く動くようになっているのですが、
RC2にすると$componentsでAuthをセットするだけで、
”auth Cannot access empty property”というエラーが出てしまいます。

どうも調べてみるとcomponent.php line224の
!isset($object->{$component}->{$parent})部分で、
$parentがnullのためにエラーが起きているようなんですが、
どうしたらいいものかわからず困っておる次第です。

もし良かったら、環境の見直しでどのような変更があったか教えていただけないでしょうか?
よろしくお願いいたしますm(_ _)m

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

mixiアプリ本
4/22発売!

mixiアプリをつくろう!
OpenSocialで学ぶ
ソーシャルアプリ



(株)スパイスボックス
神部 竜二(著)

書籍情報






検索



神部竜二
ブログ執筆者の一人です。ネットの新しい話題や Web まわりのプログラミング、Web 広告について書いていきたいと思います。


About

2008年08月08日 13:10 に投稿されたエントリーのページです。

ひとつ前の投稿は「 話題席巻の Google Streetview ライクなパノラマムービーの作り方 」です。

次の投稿は「 カンヌはWeb開発者のゴールになり得るか 」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

SEO ブログパーツ  

+ インデックス数計測 +