Laravel 5.5 требует авторизации при постановке

У меня есть проект с несколькими пакетами, которые имеют маршруты. У меня есть промежуточная / демонстрационная среда, которая должна быть общедоступной.

Есть ли способ требовать промежуточное программное обеспечение аутентификации (или что-то подобное) для всех маршрутов, не помещая его на все отдельные маршруты и группы маршрутов? (Думая что-то в начальной загрузке ??)

0

Решение

Если вы хотите, чтобы промежуточное программное обеспечение запускалось во время каждого HTTP-запроса к вашему приложению, просто перечислите класс промежуточного программного обеспечения в $middleware собственность вашего 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,
];

Если у вас нет доступа или вы не хотите изменять контроллеры пакетов, вы можете создать промежуточное программное обеспечение (рекомендуется наследовать от AuthenticateSession, Например:

<?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);
}
}

затем Kernal.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,
\App\Http\Middleware\AuthenticateIfEnvironment::class,
];
4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector