user(); $compte = $prof ?? Auth::guard('eleve')->user(); $vue->with([ 'compte' => $compte, 'estProf' => $compte instanceof User, 'nomAffiche' => $compte instanceof Eleve ? $compte->nomAffiche() : $compte->name, 'raccourcis' => $compte->raccourcis, 'badgeMesDevoirs' => $compte instanceof Eleve ? CompteurDevoirsEnAttente::pour($compte) : 0, ]); }); // API publique (bloc B) : quota par jeton Sanctum, pas par compte ni // par IP — un même prof avec deux jetons a deux quotas séparés. // CACHE_STORE=redis en production (voir CLAUDE.md : « Redis pour les // quotas »), stocké dans config/cache.php -> 'database' en local/test. RateLimiter::for('api', fn (Request $request) => Limit::perMinute(60)->by( $request->user()?->currentAccessToken()?->id ?? $request->ip() )); } }