Files
raby/common/Middleware/Auth.php

29 lines
1000 B
PHP
Raw Normal View History

2020-04-07 15:37:21 -04:00
<?php
namespace ProVM\NotariaRaby\Common\Middleware;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface as Handler;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Container\ContainerInterface as Container;
use ProVM\NotariaRaby\Common\Service\Login;
class Auth {
protected $users;
public function __construct(array $users, string $login_url, Login $service) {
$this->users = $users;
$this->login_url = $login_url;
$this->login = $service;
}
public function __invoke(Request $request, Handler $handler): Response {
$response = $handler->handle($request);
$is_logged_in = $this->login->checkAuth($request);
2020-04-16 13:46:06 -04:00
if (!$is_logged_in and $request->getRequestTarget() != $this->login_url and $request->getRequestTarget() != implode('/', [dirname($this->login_url), 'logout'])) {
2020-04-07 15:37:21 -04:00
return $response
->withHeader('Location', $this->login_url)
->withStatus(301);
}
return $response;
}
}