What are the Slack Archives?
It’s a history of our time together in the Slack Community! There’s a ton of knowledge in here, so feel free to search through the archives for a possible answer to your question.
Because this space is not active, you won’t be able to create a new post or comment here. If you have a question or want to start a discussion about something, head over to our categories and pick one to post in! You can always refer back to a post from Slack Archives if needed; just copy the link to use it as a reference..
Morning and happy new year all! I’ve noticed a strange change in behaviour for customer Yves session
Morning and happy new year all!
I’ve noticed a strange change in behaviour for customer Yves sessions after upgrading to 2021.08 and wondered if I am missing something. In previous versions the expire time of the session cookie in the browser would update each time a page is accessed, so the cookie would always be valid for 30 minutes after the last page access. Now the cookie expire time does not update which means customers only have 30 minutes to browse and checkout before their basket empties. I’ve replicated this on a fresh B2C install. It looks like this method extendCookieLifetime
does not exist in the new application plugin https://github.com/spryker/session/blob/master/src/Spryker/Yves/Session/Plugin/ServiceProvider/SessionServiceProvider.php#L76
Comments
-
Hi Rick! The issue is known, there is an internal ticket to fix it that is waiting in the queue.
It's relatively easy to fix the problem on the project level. Do you need the code sample\assistance here?0 -
Hi Valerii, thanks for the confirmation.
0 -
So far I’m adding this to the
SessionEventDispatcherPlugin
and it seems to fix the issue, but if this approach looks incorrect please share 🙂public function extend(EventDispatcherInterface $eventDispatcher, ContainerInterface $container): EventDispatcherInterface { return parent::extend($this->addKernelResponseEventListener($eventDispatcher), $container); } private function addKernelResponseEventListener( EventDispatcherInterface $eventDispatcher ): EventDispatcherInterface { $eventDispatcher->addListener(KernelEvents::RESPONSE, function (ResponseEvent $event) { if (!$event->isMasterRequest() || !$event->getRequest()->hasSession()) { return; } $session = $event->getRequest()->getSession(); if ($session->isStarted()) { $event->getResponse()->headers->setCookie($this->createSessionCookie($session->getName(), $session->getId(), session_get_cookie_params())); } }, -128); return $eventDispatcher; }
0 -
This is pretty much what the original code was doing 😇
0 -
Clarifying.
0 -
Thanks
0 -
yes, it should work i had little bit different implementation, but in general - the same protected function addKernelTerminateEventListener( EventDispatcherInterface $eventDispatcher ): EventDispatcherInterface { $eventDispatcher->addListener(KernelEvents::RESPONSE, function (ResponseEvent $event) { if (!$event->isMasterRequest() || !$event->getRequest()->hasSession()) { return; } $session = $event->getRequest()->getSession(); if ($session->isStarted()) { $session->save(); if (!$this->isSessionCookieSet($session)) { $event->getResponse()->headers->setCookie($this->createSessionCookie($session->getName(), $session->getId(), session_get_cookie_params())); } } }, static::EVENT_PRIORITY_KERNEL_RESPONSE); return $eventDispatcher; }
0 -
Thanks @valerii.trots I’ve updated my code to match 👍
0
Categories
- All Categories
- 42 Getting Started & Guidelines
- 7 Getting Started in the Community
- 8 Additional Resources
- 7 Community Ideas and Feedback
- 76 Spryker News
- 929 Developer Corner
- 787 Spryker Development
- 89 Spryker Dev Environment
- 362 Spryker Releases
- 3 Oryx frontend framework
- 35 Propel ORM
- 68 Community Projects
- 3 Community Ideation Board
- 30 Hackathon
- 3 PHP Bridge
- 6 Gacela Project
- 26 Job Opportunities
- 3.2K 📜 Slack Archives
- 116 Academy
- 5 Business Users
- 370 Docker
- 551 Slack General
- 2K Help
- 75 Knowledge Sharing
- 6 Random Stuff
- 4 Code Testing
- 32 Product & Business Questions
- 70 Spryker Safari Questions
- 50 Random