Permet aux utilisateurs de visualiser et gérer leurs sessions actives sur différents appareils, avec la possibilité de révoquer des sessions à distance en cas de suspicion d'activité non autorisée. Fonctionnalités : - Liste des sessions actives avec métadonnées (appareil, navigateur, localisation) - Identification de la session courante - Révocation individuelle d'une session - Révocation de toutes les autres sessions - Déconnexion avec nettoyage des cookies sur les deux chemins (legacy et actuel) Sécurité : - Cache frontend scopé par utilisateur pour éviter les fuites entre comptes - Validation que le refresh token appartient à l'utilisateur JWT authentifié - TTL des sessions Redis aligné sur l'expiration du refresh token - Événements d'audit pour traçabilité (SessionInvalidee, ToutesSessionsInvalidees) @see Story 1.6 - Gestion des sessions
21 lines
627 B
PHP
21 lines
627 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use Symfony\Component\Dotenv\Dotenv;
|
|
|
|
require dirname(__DIR__) . '/vendor/autoload.php';
|
|
|
|
// PHPUnit sets $_SERVER['APP_ENV'] via phpunit.xml <server> directive.
|
|
// We must ensure this takes precedence over shell environment variables.
|
|
if (isset($_SERVER['APP_ENV'])) {
|
|
$_ENV['APP_ENV'] = $_SERVER['APP_ENV'];
|
|
putenv('APP_ENV=' . $_SERVER['APP_ENV']);
|
|
}
|
|
|
|
if (file_exists(dirname(__DIR__) . '/config/bootstrap.php')) {
|
|
require dirname(__DIR__) . '/config/bootstrap.php';
|
|
} elseif (method_exists(Dotenv::class, 'bootEnv')) {
|
|
(new Dotenv())->bootEnv(dirname(__DIR__) . '/.env');
|
|
}
|