Si vous voulez qu'un intergiciel s'exécute pendant chaque requête HTTP à votre application, lister simplement la classe de middleware dans la propriété $middleware
de votre classe app/Http/Kernel.php
.
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\TrustProxies::class,
YOUR MIDDLEWARE::class,
];
Si vous n'avez pas accès, ou ne veulent pas, de modifier les contrôleurs de package, vous pouvez créer un intergiciel (recommander héritant de AuthenticateSession
Par exemple:.
<?php
namespace App\Http\Middleware;
use Illuminate\Session\Middleware\AuthenticateSession;
use Auth;
use Closure;
class AuthenticateIfEnvironment extends AuthenticateSession
{
public function handle($request, Closure $next)
{
if (env('APP_ENV') == 'XXXXXXXX' && !Auth::user() && !$request->is('login')) {
return redirect('/login');
}
return parent::handle($request, $next);
}
}
Alors Kernal.php
ressemble ceci:..
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\AuthenticateIfEnvironment::class,
];
a rencontré un autre problème de la la réponse, comme il est écrit, ne dit pas qu'il middleware auth ne peut pas atteindre le/itinéraire de connexion parce que, eh bien, il est une route, faites votre. propre itinéraire (bien que cela soit implicite). Je veux juste m'assurer que nous sommes clairs pour les futurs lecteurs. –
Vous pouvez ajouter la ligne suivante dans votre contrôleur qui gère la connexion et la déconnexion (AuthController peut être): '$ this-> middleware ('auth', ['except' => ['getActivate', 'anotherMethod']]); 'à l'intérieur du constructeur. –
Oui. Je ne souhaite pas jouer avec les contrôleurs de paquets. Fondamentalement, ces paquets sont "full service"; Donc, je pense que je devrais (je veux) faire ce que je peux dans le bundle de l'application principale. Voir les modifications en attente d'examen par les pairs. –