diff --git a/src/AutoLoginMiddleware.php b/src/AutoLoginMiddleware.php deleted file mode 100644 index 1b63150..0000000 --- a/src/AutoLoginMiddleware.php +++ /dev/null @@ -1,93 +0,0 @@ -sessionManager = $sessionManager; - $this->options = $options; - $this->authenticationService = $authenticationService; - $this->adapter = $adapter; - $this->userTokenService = $userTokenService; - } - - /** - * @param ServerRequestInterface $request - * @param RequestHandlerInterface $handler - * @return ResponseInterface - */ - public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface - { - $config = $this->sessionManager->getConfig(); - if ($config->getUseCookies() && ! $this->authenticationService->hasIdentity()) { - $key = $this->options->getCookieName(); - $rememberMe = $request->getCookieParams()[$key] ?? null; - if (is_null($rememberMe)) { - return $handler->handle($request); - } - /** @var UserToken $token */ - $token = $this->userTokenService->findOneBy(['value' => base64_decode($rememberMe)]); - if ($token instanceof UserToken && ! $token->isTokenExpired()) { - $this->authenticationService->setAdapter($this->adapter); - $this->adapter->setIdentity($token->getUser()->getIdentity()); - $authResult = $this->authenticationService->authenticate(); - if ($authResult->isValid()) { - $identity = $authResult->getIdentity(); - $this->authenticationService->getStorage()->write($identity); - } else { - $this->userTokenService->destroyToken($token); - } - } - } - return $handler->handle($request); - } -} \ No newline at end of file diff --git a/src/ConfigProvider.php b/src/ConfigProvider.php index 3f5b612..8dad5d3 100644 --- a/src/ConfigProvider.php +++ b/src/ConfigProvider.php @@ -9,7 +9,6 @@ namespace Dot\Session; -use Dot\Session\Factory\AutoLoginMiddlewareFactory; use Dot\Session\Factory\ContainerAbstractServiceFactory; use Dot\Session\Factory\SessionMiddlewareFactory; use Dot\Session\Factory\SessionOptionsFactory; @@ -67,7 +66,6 @@ public function getDependencyConfig(): array SessionOptions::class => SessionOptionsFactory::class, SessionMiddleware::class => SessionMiddlewareFactory::class, - AutoLoginMiddleware::class => AutoLoginMiddlewareFactory::class, ], 'abstract_factories' => [ ContainerAbstractServiceFactory::class, diff --git a/src/Factory/AutoLoginMiddlewareFactory.php b/src/Factory/AutoLoginMiddlewareFactory.php deleted file mode 100644 index 2389257..0000000 --- a/src/Factory/AutoLoginMiddlewareFactory.php +++ /dev/null @@ -1,34 +0,0 @@ -get(SessionManager::class), - $container->get(SessionOptions::class), - $container->get(AuthenticationService::class), - $container->get(PersistentAuthenticationAdapter::class), - $container->get(UserTokenService::class), - ); - } -} \ No newline at end of file diff --git a/src/Factory/SessionMiddlewareFactory.php b/src/Factory/SessionMiddlewareFactory.php index efade25..89af42f 100644 --- a/src/Factory/SessionMiddlewareFactory.php +++ b/src/Factory/SessionMiddlewareFactory.php @@ -9,15 +9,11 @@ namespace Dot\Session\Factory; -use Doctrine\ORM\EntityManager; -use Dot\Session\Exception\RuntimeException; use Dot\Session\Options\SessionOptions; use Dot\Session\SessionMiddleware; -use Laminas\Authentication\AuthenticationService; use Psr\Container\ContainerInterface; use Laminas\Session\Container; use Laminas\Session\ManagerInterface; -use Laminas\Log\Logger; /** diff --git a/src/Options/SessionOptions.php b/src/Options/SessionOptions.php index c3374a5..c81a009 100644 --- a/src/Options/SessionOptions.php +++ b/src/Options/SessionOptions.php @@ -17,15 +17,9 @@ */ class SessionOptions extends AbstractOptions { - - const COOKIE_DEFAULT_NAME = 'remember_me_token'; - /** @var int */ protected $rememberMeInactive = 1800; - /** @var string $cookieName */ - protected $cookieName = 1800; - /** * @return int */ @@ -41,14 +35,4 @@ public function setRememberMeInactive(int $rememberMeInactive) { $this->rememberMeInactive = $rememberMeInactive; } - - public function getCookieName(): string - { - return $this->cookieName; - } - - public function setCookieName(string $name = self::COOKIE_DEFAULT_NAME) - { - $this->cookieName = $name; - } } diff --git a/src/SessionMiddleware.php b/src/SessionMiddleware.php index 411b2d7..ce9a319 100644 --- a/src/SessionMiddleware.php +++ b/src/SessionMiddleware.php @@ -9,23 +9,13 @@ namespace Dot\Session; -use Doctrine\ORM\EntityManager; -use Doctrine\ORM\Mapping\Entity; use Dot\Session\Options\SessionOptions; -use Frontend\User\Entity\User; -use Frontend\User\Entity\UserToken; -use Frontend\User\Repository\UserRepository; -use Frontend\User\Repository\UserTokenRepository; -use Laminas\Authentication\AuthenticationServiceInterface; -use Laminas\Log\Logger; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\MiddlewareInterface; use Psr\Http\Server\RequestHandlerInterface; -use Laminas\Session\Config\SessionConfig; use Laminas\Session\Container; use Laminas\Session\SessionManager; -use Exception; /** * Class SessionMiddleware @@ -33,7 +23,6 @@ */ class SessionMiddleware implements MiddlewareInterface { - const REMEMBER_ME_YES = "1"; /** @var SessionManager */ protected $defaultSessionManager; @@ -64,13 +53,13 @@ public function __construct( public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $now = time(); - if (isset($_SESSION['LAST_ACTIVITY']) - && $now - $_SESSION['LAST_ACTIVITY'] > $this->options->getRememberMeInactive() + if (isset($this->defaultSessionManager->getStorage()['LAST_ACTIVITY']) + && $now - $this->defaultSessionManager->getStorage()['LAST_ACTIVITY'] > $this->options->getRememberMeInactive() ) { $this->defaultSessionManager->destroy(['send_expire_cookie' => true, 'clear_storage' => true]); $this->defaultSessionManager->start(); } - $_SESSION['LAST_ACTIVITY'] = $now; + $this->defaultSessionManager->getStorage()['LAST_ACTIVITY'] = $now; return $handler->handle($request); } }