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.
Recibe notificaciones por correo
3 Comentarios
Escribir Comentario:)
Responderhola 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
Responderahi que nstalar alguna dependencia desde ya muchas gracias
Hola Pablo, comparte tu código y veamos cual es el problema, saludos!
ResponderLamentablemente 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