/** * Mount session id or remove session cookie. * * @param ServerRequestInterface $request * @param ResponseInterface $response * @param SessionStore $store * @param array $cookies * @return ResponseInterface */ protected function setCookie(ServerRequestInterface $request, ResponseInterface $response, SessionStore $store, array $cookies) { if ($store->isStarted()) { $store->commit(); } if (!isset($cookies[self::COOKIE]) || $cookies[self::COOKIE] != $store->getID()) { if ($response instanceof ResponseInterface) { return $response->withAddedHeader('Set-Cookie', Cookie::create(self::COOKIE, $store->getID(), $store->config()['lifetime'], $request->getAttribute('basePath'), $request->getAttribute('cookieDomain'))->packHeader()); } } return $response; }