1 - Ваш маршрут будет использовать промежуточное ПО от App\Providers\RouteServiceProvider
.См .:
/**
* Define the "web" routes for the application.
*
* These routes all receive session state, CSRF protection, etc.
*
* @return void
*/
protected function mapWebRoutes()
{
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
}
Все написанное вами промежуточное программное обеспечение будет выполняться в указанном вами порядке.В случае сбоя одного промежуточного программного обеспечения $next($request);
вызываться не будет.Таким образом, следующее промежуточное программное обеспечение не будет активировано.
2- Эти промежуточные программы auth:web
и auth:custom
являются вызовами 'auth middleware', но с другими параметрами.Все, что после :
отправляется для обработки метода промежуточного программного обеспечения в качестве параметров.
Промежуточное программное обеспечение аутентификации определяется в App\Http\Kernel
class в $routeMiddleware
var:
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
и здесьэто метод handle
:
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string[] ...$guards
* @return mixed
*
* @throws \Illuminate\Auth\AuthenticationException
*/
public function handle($request, Closure $next, ...$guards)
{
$this->authenticate($guards);
return $next($request);
}
Ваш параметр 'web' или 'custom' переходит в параметр ... $ guards.
Между прочим, нет предопределенного 'custom'охранник.Вы должны написать свой собственный защитный элемент и определить его в массиве config/auth.php
, guards
:
'guards' => [
'web' => [ // This is the web guard (auth:web)
'driver' => 'session',
'provider' => 'users',
],
'api' => [ // and this the api guard (auth:api)
'driver' => 'token',
'provider' => 'users',
],
],
Затем вы можете ожидать, что промежуточное программное обеспечение для аутентификации laravel будет проходить аутентификацию с использованием вашего специального защитного элемента, например auth:custom
или * 1030.*.