EC-CUBE4でフロント側でログアウトしたときに管理画面もログアウトする問題に対応する方法です。
注意!EC-CUBE4.0.1ではカート周りでバグりますので利用しないでください。
只今、ここで対応しています。
EC-CUBE4ではフロント側と管理側の両方でログインしていた場合、片方でログアウトすると両方ログアウトしてしまう問題があります。
これはSymfonyのSessionLogoutHandlerが有効化されていて、ログアウト時にセッションが破棄されてしまうことが影響しています。
なので、以下のようにsecurity.yamlに「invalidate_session」を無効化するよう指定してあげれば解決するかと思います。
security: encoders: # Our user class and the algorithm we'll use to encode passwords # https://symfony.com/doc/current/security.html#c-encoding-the-user-s-password Eccube\Entity\Member: id: Eccube\Security\Core\Encoder\PasswordEncoder Eccube\Entity\Customer: id: Eccube\Security\Core\Encoder\PasswordEncoder providers: # https://symfony.com/doc/current/security.html#b-configuring-how-users-are-loaded # In this example, users are stored via Doctrine in the database # To see the users at src/App/DataFixtures/ORM/LoadFixtures.php # To load users from somewhere else: https://symfony.com/doc/current/security/custom_provider.html member_provider: id: Eccube\Security\Core\User\MemberProvider customer_provider: id: Eccube\Security\Core\User\CustomerProvider # https://symfony.com/doc/current/security.html#initial-security-yml-setup-authentication firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false admin: pattern: '^/%eccube_admin_route%/' anonymous: true provider: member_provider form_login: check_path: admin_login login_path: admin_login csrf_token_generator: security.csrf.token_manager default_target_path: admin_homepage username_parameter: 'login_id' password_parameter: 'password' use_forward: true success_handler: eccube.security.success_handler failure_handler: eccube.security.failure_handler logout: path: admin_logout target: admin_login invalidate_session: false // セッションを維持するためここを追加 customer: pattern: ^/ anonymous: true provider: customer_provider remember_me: secret: '%kernel.secret%' lifetime: 3600 name: eccube_remember_me remember_me_parameter: 'login_memory' form_login: check_path: mypage_login login_path: mypage_login csrf_token_generator: security.csrf.token_manager default_target_path: homepage username_parameter: 'login_email' password_parameter: 'login_pass' use_forward: true success_handler: eccube.security.success_handler failure_handler: eccube.security.failure_handler logout: path: logout target: homepage invalidate_session: false // セッションを維持するためここを追加 access_decision_manager: strategy: unanimous allow_if_all_abstain: false
EC-CUBEにプルリク出しましたので、マージされれば次回のバージョンに反映されるかと思います。
https://github.com/EC-CUBE/ec-cube/pull/4082