ajoute le portail Laravel : connexion prof/élève, session unique, gestion de classe, salle d'attente
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
aa31b6112f
commit
30e14b1c54
191 changed files with 25324 additions and 0 deletions
36
portail/app/Http/Middleware/VerifieSessionUnique.php
Normal file
36
portail/app/Http/Middleware/VerifieSessionUnique.php
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
/**
|
||||
* Une seule session active par compte (étape 8). Si le jeton que porte cette
|
||||
* session ne correspond plus à celui enregistré sur le compte, c'est qu'une
|
||||
* connexion plus récente a eu lieu ailleurs : on déconnecte et on le dit.
|
||||
*/
|
||||
class VerifieSessionUnique
|
||||
{
|
||||
public function handle(Request $request, Closure $next, string $garde = 'web'): Response
|
||||
{
|
||||
$utilisateur = Auth::guard($garde)->user();
|
||||
|
||||
if ($utilisateur !== null) {
|
||||
$cleSession = "jeton_session_{$garde}";
|
||||
|
||||
if (! $utilisateur->sessionEstEncoreValide($request->session()->get($cleSession))) {
|
||||
Auth::guard($garde)->logout();
|
||||
$request->session()->invalidate();
|
||||
$request->session()->regenerateToken();
|
||||
|
||||
return redirect()->route('login')
|
||||
->with('session_coupee', 'Vous avez été déconnecté : une nouvelle connexion a eu lieu sur votre compte.');
|
||||
}
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue