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.

3 Comentarios

Escribir Comentario
14 de diciembre de 2018, 12:30 delete

hola carlos estoy probando en slim 3 y no me esta funcionando pruebo co un rest cliente . pero no se si esta bien tu metodo porque siembpredevuelve acceso negado
ahi que nstalar alguna dependencia desde ya muchas gracias

Responder
avatar
4 de febrero de 2019, 11:53 delete

Hola Pablo, comparte tu código y veamos cual es el problema, saludos!

Responder
avatar

Lamentablemente hay muchos usuarios en la red que han llegado al blog para escribir obscenidades, así que la moderación se hace necesaria. Recuerda utilizar un lenguaje correcto y espera a que sea aprobado.

Si necesitas publicar código haz click en "Conversión" para hacerlo legible.
ConversiónConversión