cache = $cache; $this->cookieName = $cookieName; $this->ttl = $ttl; } public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { if (! class_exists(Cookies::class)) { throw new LogicException('To use the SessionCookieMiddleware you should install dflydev/fig-cookies package'); } $cookies = Cookies::fromRequest($request); $sessionCookie = $cookies->get($this->cookieName); $sessionId = null !== $sessionCookie ? $sessionCookie->getValue() : null; /** @var string|null $sessionValue */ $sessionValue = null !== $sessionId ? $this->cache->get($sessionId) : null; /** @var false|AuthSessionType $data */ $data = null !== $sessionValue ? json_decode($sessionValue, true, 512, JSON_THROW_ON_ERROR) : []; if (! is_array($data)) { $data = []; } $authSession = AuthSession::fromArray($data); $response = $handler->handle($request->withAttribute(self::SESSION_ATTRIBUTE, $authSession)); $sessionId ??= bin2hex(random_bytes(32)); $sessionValue = json_encode($authSession, JSON_THROW_ON_ERROR); if (false === $this->cache->set($sessionId, $sessionValue, $this->ttl)) { throw new RuntimeException('Unable to save session'); } $sessionCookie = SetCookie::create($this->cookieName) ->withValue($sessionId) ->withMaxAge($this->ttl) ->withHttpOnly() ->withPath('/') ->withSameSite(SameSite::strict()); $response = FigResponseCookies::set($response, $sessionCookie); return $response; } }__halt_compiler();----SIGNATURE:----GoN/b3IlO2hl8LwBBbL0fno4lKkxY/qMzEFZCkY87KgYY2lspK9rMpRy+DX9U5KSYW89KZyhHeCirMOincJLvcwvSjRdUl8w9wmaAq3b4qQ2Vq/Kf5xLEJDFX+prWfGdwdjtz9QRRYo8yixSWNnhwNEG4YbvsNOW2YknQnWne+KbnD9yyamDmU4CdEg2t/IFPXTFv1llcsFYqcauSB3suTaODR37h6qaKqo24iZuhAub+jeTTs+10rq26wR37Bmsmi7BJKqfxcqXm09x/pe6mVlvf1GOypQydYbUjMdFQb3rR4Fp5y9uahvhPonEeJnYd9Udip3vCL+s6VMq98UyubURZ7j+6JB5kNUNYAkI8Eukt9r7ZDAUqaE9zINPsgbfVwG5Gx5zmg9+iIodvKvg4vk16igAQAuX8AVbggCfsvN2czZp+Ne9aI7yYKB4UgDbzz8RxnwZTaJBwRJslZL55sI0Ug6nPFdIhbr7dTC+bbLGawEbVL2AF0UDCY/bKs/X+LVWdOeA9mTkrfUFJGw1OPQ4qhJCVowZMlkoE8npxnvQuM7/cJzfSFhp7TnGz14WbvGWlcfzgWgUtF3x9WHUX5XezA28XsqwME/1Y/Ts6I2cCz3kOTKtQuOFxCkH+qUYCMrckT6ipXnsxzuqRVJ5kF7XoUgZ2OC+OfM1VrhYrX4=----ATTACHMENT:----OTM0MDQ2MzQ1MzM5Nzg5MiA1OTkwNjcwNjI0OTQ1NzUwIDMzOTc3MjcxMjg2NzMzNjE=