質問 > フロント機能 > ログアウト時に一部セッションのみ保持したい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
tacky14 |
投稿日時: 2021/6/25 22:17
対応状況: −−−
|
半人前 登録日: 2021/4/23 居住地: 投稿: 16 |
ログアウト時に一部セッションのみ保持したい -------------------------------------------------
EC-CUBE 4.0.5(新規インストール) サーバーOS Linux DBサーバー MySQL 5.7.34 WEBサーバー Apache/2.4.25 (Debian) PHP 7.3.27 ブラウザ Chrome90 カスタマイズ多数あり ------------------------------------------------- [要望] フロントでログアウトする際に、保持するセッションと削除するセッションを振り分けることはできないでしょうか。 app/config/eccube/packages/security.yaml に
を追加してログアウト時にもセッションを残せるようにしたのですが これだとカートやカスタマイズで追加したものなど、ログアウトしたときに削除したいセッションまで残ってしまい、要件に満たない状態です。 これを、指定したセッションのみ残して他は通常通り削除される状態にしたいです。 [検討・試したこと] 1. invalidate_session:falseにしたうえで、ログアウト完了時に特定のセッションを取捨選択する方法も考えましたが(具体的なやり方までは未検討) こちらのPRをみると、影響範囲は広そうなので、問題がありそうであれば invalidate_session は極力使わずに対応したいと考えています。 2. ログアウト処理は、Symfony/Component/Security/Http/Logout/SessionLogoutHandler.php で行っているようなので、これをapp/Customize内で拡張なりできればいいのかなと思い Customize/Security/Http/Logout/CustomizeLogoutSuccessHandler.php を追加。 services.yaml に
を追加してみましたが class "Symfony/Security/Http/Logout/LogoutSuccessHandler" does not exist. のエラーがでました。 3. symfonyのドキュメントに success_handler というのがあったので
を追加
を追加してみました。 これも
とエラーになる状態です。 services.yaml追加の試行については、私の勉強不足で書き方の問題かもしれませんが。。 長くなりましたが、ログアウト処理の拡張について知見ございましたらご教授いただけましたら幸いです。 よろしくお願いいたします。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |