- Added RememberMe middleware

This commit is contained in:
Dave Mc Nicoll 2024-12-05 15:32:01 -05:00
parent e63ea439d6
commit d3bb2c248a
4 changed files with 32 additions and 4 deletions

View File

@ -85,8 +85,8 @@ abstract class User implements UserInterface {
return trim( ( $this->firstName ?? "" ) . " " . ( $this->lastName ?? "" ) );
}
public function loggedIn(): bool
public function loggedIn(?bool $set = null): bool
{
return $this->logged;
return $set !== null ? $this->logged = $set : $this->logged;
}
}

View File

@ -7,7 +7,7 @@ use Ulmus\Entity\EntityInterface;
interface UserInterface extends EntityInterface
{
public function __toString() : string;
public function loggedIn() : bool;
public function loggedIn(?bool $set = null) : bool;
public function verifyPassword(string $password) : bool;
public function hashPassword(? string $password = null) : static;
public function setPassword($password) : static;

View File

@ -133,7 +133,7 @@ class Authenticate {
$this->user->fromArray($entity);
$this->user->logged = true;
$this->user->loggedIn(true);
return $this->user;
}

View File

@ -0,0 +1,28 @@
<?php
namespace Ulmus\User\Middleware;
use Psr\Http\{
Message\ResponseInterface,
Message\ServerRequestInterface,
Server\MiddlewareInterface,
Server\RequestHandlerInterface
};
use Ulmus\User\Entity\UserInterface;
use Ulmus\User\Authorize\PostRequestAuthentication;
use Ulmus\User\Lib\Authenticate;
class RememberMeMiddleware implements MiddlewareInterface
{
public function __construct(
protected UserInterface $entity,
protected Authenticate $authenticator,
) {}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->authenticator->rememberMe();
return $handler->handle($request);
}
}