CakePHP 他サイト(twitter)からリダイレクトの際セッションが削除される

Cake PHP

今日は事務所に行ってCakePHPで運営しているサイトを調整していたんですが、twitterのタイムラインからこのサイトのURLをクリックして飛んできた場合、ユーザーログインしているはずなのにログアウトしてしまうという症状に見舞われました。

twitterのリンクは現在「t.co」ドメインを経由したリダイレクトを使用しており、ブラウザによっては、セッションが切れてしまうようです。私のPCは、Windows7のFirefox15とChorome22ですが、どちらもtwitterから調整中のサイトに飛んでくると、ログアウトしていまいました。

サイト側の方で

pr($_SESSION);

※これはCakePHPで使えるデバッグ用の関数です。

と記述して、内容を確認したところ、それまで保持していたセッション情報が見事に消えてしまっているようでした。

これはいかんと思い、解決策を探るべく早速ググったところ、「/cake/libs/session.php」内において、CakePHPのセキュリティレベルが「high」か「medium」に指定されているとリダイレクトされた際にセッションIDを空にしてしまうということが判明したのでした。

「/app/tmp/sessions」内のファイルを確認していると、セッションIDが変わってしまうのが分かりますね。

セキュリティレベルが「high」か「medium」の際に、リダイレクト元として許可するサイトドメインなどを例外として記述しておけば、対策はできそうな気がします。

今回はセキュリティレベルを「low」にして対応したところ、セッションが消えることなく動作するようになりました。

こんな感じっすね↓

/app/config/core.php

Configure::write('Security.level', 'low');

同様の症状で困っている方がいれば、是非確認してみてください!

プロから直接学べるプログラミングスクールの紹介!PHPコースあり!

自己流でプログラミングを覚えようとすると、環境設定でつまづく、書いたプログラムがなぜ動かないか解決できず、多大な時間を浪費してしまいがちです。

担当の指導者(メンター)が付いてくれるTechAcademyなら、分からないことをどんどん質問して解決できます!コードレビューしてもらえるのも素晴らしい点ですね。

【TechAcademy】家で学べるプログラミングスクール

Web制作会社が立ち上げたWebデザイナー育成スクール Web塾超現場主義

Web制作に実際に携わっている講師陣が、現場で通用するスキルを伝授します!卒業後は転職支援、仕事紹介などを行っており、フリーランス独立する道を探すこともできそうです。

また「独立・開業はちょっと...」という方へは、当社の制作案件をお手伝いして頂く道も開けます。
Facebookアカウントでコメント

※本コメント機能はFacebookによって提供されており、この機能によって生じた損害に対してザ サイベースは一切の責任を負いません。

Cake PHP

ABOUTこの記事を書いた人

とみっち

埼玉でザ サイベースを主催しています。Webクリエイター。フリーランス歴7年。飄々と生きています。これでも育児頑張ってます。長野市出身。 @tomicci 詳しいプロフィール【興味】ギター/DTM/Web/車/田舎/旅/酒/育児 自然の音からデスメタルまで聴きます。【運営サイト】 ザ サイベース おと風景