LogIn simple en Slim Framework

   En la entrada anterior explicaba como conectar Slim Framework a MySQL/MariaDB, si ya conectamos a la BD utilizando PDO entonces solo nos resta validar los datos del usuario, para eso tenemos a nuestra disposición los Middleware, de forma simple basta con hacer lo siguiente:
$app->get('/login', function ($request, $response, $args) {
    $input = $request->getParsedBody();
    if($input['usuario'] == "hola" && $input['clave'] == "mundo") {
        $_SESSION["usuario"] = "carlitox";
        return $this->response->withJson(array("ok"=>"acceso autorizado"));
    } else {
        return $this->response->withJson(array("error"=>"acceso negado"));
    }
});

$app->get('/logout', function ($request, $response, $args) {
    session_destroy();
    return $this->response->withJson(array("ok"=>"sesion finalizada"));
});

$app->get('/test', function ($request, $response, $args) {
    return $this->response->withJson(array("ok"=>"prueba A"));
})->add(function ($request, $response, $next) {
    if(!isset($_SESSION["usuario"]))
        return $this->response->withJson(array("error"=>"acceso negado"));
    $response = $next($request, $response);
    return $response;
});
   Podemos agrupar varias rutas, por ejemplo:
$app->get('/login', function ($request, $response, $args) {
    $input = $request->getParsedBody();
    if($input['usuario'] == "hola" && $input['clave'] == "mundo") {
        $_SESSION["usuario"] = "carlitox";
        return $this->response->withJson(array("ok"=>"acceso autorizado"));
    } else {
        return $this->response->withJson(array("error"=>"acceso negado"));
    }
});

$app->get('/logout', function ($request, $response, $args) {
    session_destroy();
    return $this->response->withJson(array("ok"=>"sesion finalizada"));
});

$app->group('/test', function() {
    $this->get('/a', function ($request, $response, $args) {
        return $this->response->withJson(array("ok"=>"prueba A"));
    });
    $this->get('/b', function ($request, $response, $args) {
        return $this->response->withJson(array("ok"=>"prueba B"));
    });
})->add(function ($request, $response, $next) {
    if(!isset($_SESSION["usuario"]))
        return $this->response->withJson(array("error"=>"acceso negado"));
    $response = $next($request, $response);
    return $response;
});
   Con esto tenemos un inicio de sesión simple utilizando PHPSESSID.