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