Salut, j'ai déjà regarder la vidéo de grafikart, j'ai même fait mon propre template slim...
Ta solution n'est pas bonne, car mon container ne possède en aucun cas l'objet auth, j'avais déjà regarder sur internet des solutions de ce genre et au final j'ai trouvé via ce tuto youtube avec quelques modifs:
https://www.youtube.com/watch?v=ZLmCdbNYHAo
Mon middleware:
<?php
namespace App\Middlewares;
use Slim\Http\Request;
use Slim\Http\Response;
class SessionMiddleware {
private $container;
public function __construct($container) {
$this->container = $container;
}
public function __invoke(Request $request, Response $response, $next) {
if (!isset($_SESSION['auth']) || empty($_SESSION['auth'])) {
return $response->withRedirect($this->container->router->pathFor('login'));
}
$response = $next($request, $response);
return $response;
}
}
Mes routes:
$app->group('', function () {
// Route logout
$this->get('/logout', LoginController::class. ':getLogout')->setName('logout');
// Routes home
$this->get('/', HomeController::class. ':getHome')->setName('home');
$this->post('/', HomeController::class. ':postHome');
})->add(new App\Middlewares\SessionMiddleware($container));
Merci d'avoir quand même pris le temps pour essayer de m'aider :)