Files
ui/common/Controller/Auth.php
2021-12-25 23:17:47 -03:00

36 lines
1.2 KiB
PHP

<?php
namespace Incoviba\UI\Common\Controller;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
use Incoviba\UI\Common\Service\Auth as Service;
class Auth {
public function login(Request $request, Response $response, View $view): Response {
$route = $_SESSION['route'] ?? '/';
return $view->render($response, 'auth.login', compact('route'));
}
public function doLogin(Request $request, Response $response, Service $service): Response {
$post = $request->getParsedBody();
$user = $post['name'];
$password = $post['password'];
$output = [
'login' => $service->login($user, $password)
];
if ($output['login']) {
unset($_SESSION['route']);
}
$response->getBody()->write(json_encode($output, JSON_UNESCAPED_SLASHES));
return $response
->withStatus(200)
->withHeader('content-type', 'application/json');
}
public function logout(Request $request, Response $response, Service $service): Response {
$service->logout();
return $response
->withStatus(302)
->withHeader('Location', '/');
}
}