login/logout ok
This commit is contained in:
@@ -101,10 +101,12 @@ final class Bootstrap
|
||||
// Middleware de parsing du body
|
||||
$this->app->addBodyParsingMiddleware();
|
||||
|
||||
// Twig et extension CSRF
|
||||
// Twig et extensions
|
||||
$twig = $this->container->get('twig');
|
||||
$csrfExtension = $this->container->get('csrfExtension');
|
||||
$sessionExtension = $this->container->get('sessionExtension');
|
||||
$twig->addExtension($csrfExtension);
|
||||
$twig->addExtension($sessionExtension);
|
||||
$this->app->add(TwigMiddleware::create($this->app, $twig));
|
||||
|
||||
// CSRF Guard
|
||||
|
||||
@@ -17,6 +17,7 @@ use App\Repositories\UserRepository;
|
||||
use App\Services\HtmlSanitizer;
|
||||
use App\Services\HtmlPurifierFactory;
|
||||
use App\Services\CsrfExtension;
|
||||
use App\Services\SessionExtension;
|
||||
use App\Services\AuthService;
|
||||
use App\Middleware\AuthMiddleware;
|
||||
use App\Database\Migrator;
|
||||
@@ -113,6 +114,14 @@ final class Container implements ContainerInterface
|
||||
return new CsrfExtension($csrf);
|
||||
};
|
||||
|
||||
// ============================================
|
||||
// Session Extension pour Twig
|
||||
// ============================================
|
||||
|
||||
$this->factories['sessionExtension'] = function (): SessionExtension {
|
||||
return new SessionExtension();
|
||||
};
|
||||
|
||||
// ============================================
|
||||
// HTML Purifier
|
||||
// ============================================
|
||||
|
||||
21
src/Services/SessionExtension.php
Normal file
21
src/Services/SessionExtension.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use Twig\Extension\AbstractExtension;
|
||||
use Twig\Extension\GlobalsInterface;
|
||||
|
||||
/**
|
||||
* Extension Twig pour accéder à la session dans les templates.
|
||||
*/
|
||||
final class SessionExtension extends AbstractExtension implements GlobalsInterface
|
||||
{
|
||||
public function getGlobals(): array
|
||||
{
|
||||
return [
|
||||
'session' => $_SESSION,
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -60,7 +60,7 @@
|
||||
<body>
|
||||
|
||||
{# Header commun #}
|
||||
{% include 'partials/_header.twig' with {'session': _SESSION} %}
|
||||
{% include 'partials/_header.twig' %}
|
||||
|
||||
{# Zone principale – chaque page injecte son contenu #}
|
||||
<main>
|
||||
|
||||
Reference in New Issue
Block a user