redirectのバグ?仕様?

2007/03/31 | cakePHP

認証機能の続き。

現在cakePHPと別のブログシステムとを連携してプログラムを書いている。ブログそのものに認証機能を実装して(会員専用ページのような感じ)、会員管理をcakePHPで実装した。ログインの状態はセッションで持ち回り、ログイン画面の表示はブログ側で実装してある。
ここでcakePHPでセッションの状態を確認し、ログインが確認できなかったらブログのトップページ(認証が必要)へリダイレクトする処理を実装しようと考えた(が、ここではまった)。
cakePHPのコントローラーにはredirectメソッドが用意されている。このメソッドもちょっと曲者でリダイレクト後にexitしてない、ってことでウェブ上には多くの不満の声がある。
そこはそもそも注意していたのだが・・・このリダイレクトメソッド、外部のURLには遷移できない。cakePHPのルートディレクトリ以下でしか動作しないっぽい。なくなくソースを読んでみたけど、redirectメソッドの最後のほうはこんな記述。

header(‘Location: ‘ . FULL_BASE_URL . $url);

絶対外には出れないよ。contoroller.phpを見渡してみたけど、他に遷移できそうなメソッドが見当たらない・・・。外には出れないわけね。

2件のコメント

  1. hoge :

    原因なのかどうなのか分かりませんが、前回beforeFilterについて投稿したものですが、beforeFilterが重いのではなく、その中に記述されていた$this->redirect(-)が動作しないことが分かりました。
    それで、そのことについて調べたらこのサイトに辿りついてしまいました。

    上記のものと同等のシステムを作ろうとしていて、セッションにがない場合、認証画面に遷移させようとしていましたが、これがバグということで行き詰ってしまいましたね。

    何かしらの対処策があればいいのですが・・・

  2. かおるん :

    動作しないことないでしょ。私は全然行き詰ってないです。
    マニュアルとかソースコードとか読んでます?。少なくともcakePHPのウェブアプリで完結しているのなら、何の問題もないと思うけど。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net