質問: cakephp3でAuthComponentを使用したクローズドなページを作成しているのですが 他のページ(他のコントローラーのアクション)は特に問題なくログアウトされることなく閲覧できるのですが phpを経由して外部サーバーから画像を取得してその画像を表示させる処理を行っているアクションにアクセスすると セッションが削除されてAuthComponentがログアウトされてしまいます。 セッションが途切れないようにするためには何が必要なのでしょうか? httpですとログアウトされることなく正常なのですが、httpsにするとログアウトされる状態です。 なので、phpコードの方には原因は、sslの絡んだ問題ではないかなと睨んでいます。 それとも、cakephpのアクション内でheader関数を使用してContent-Type: image/jpegとしているので、Sessionが削除されてしまっているということはありますでしょうか? 文章が下手でわかりにくく申し訳ありませんが、何かご教授いただけないでしょうか?
回答: 推測ですが...(見当違いだったらすみません) httpsとhttpが混在しているため、セッションIDを保存しているクッキーがhttp環境だと参照できず、非ログイン状態と認識されているのではないでしょうか。この問題については以下のサイトに詳しく書かれていますので、該当していないか確認してみてください。(他にも詳しい記事がありそうでした) 【メモ】httpとhttpsの混在環境でクッキーを利用する config/app.phpのSessionの設定を変更することで、クッキーのセキュア属性を無効にできますので、試してみるといいと思います。 ``` 'Session' => [ 'defaults' => 'php', 'ini' => ['session.cookie_secure' => false], // セキュア属性を無効にする ], ``` ※CakePHPのセッションについては、マニュアルを参照してください。