Укажите пользовательский порядок выполнения промежуточного программного обеспечения в Laravel 5.8. - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть пользовательское промежуточное ПО, которое идентифицирует клиента в приложении.Когда я вызываю конечную точку без промежуточного программного обеспечения 'auth', она правильно идентифицирует клиента и может читать таблицы по мере необходимости.Однако мне нужно выполнить auth после того, как был идентифицирован арендатор (т. Е. Чтобы у пользователя auth запрашивалась правильная база данных), я не могу видеть, где я ошибся с моей конфигурацией.Я получаю сообщение об ошибке:

Неопределенный индекс: база данных

, но это из-за того, что мое промежуточное программное обеспечение identifier не запустило установку базы данных в точке, в которой промежуточное программное обеспечение аутентификации пытаетсяаутентификации.

Группа маршрутов

Route::group(['middleware' => ['tenant', 'auth', 'manager_admin']], function () {

Route::resource('invoice',  'InvoiceController');});

Раздел приоритетного промежуточного программного обеспечения kernel.php, как предлагается здесь в docs

 protected $middlewarePriority = [
    // --- Added identify m.ware at the top to run first.
    \App\Http\Middleware\IdentifyTenant::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    \App\Http\Middleware\Authenticate::class,
    \Illuminate\Session\Middleware\AuthenticateSession::class,
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
    \Illuminate\Auth\Middleware\Authorize::class,
];

Раздел промежуточного программного обеспечения ядра.php

protected $routeMiddleware = [
    'tenant'         => \App\Http\Middleware\IdentifyTenant::class,
    'auth' => \App\Http\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
    'can' => \Illuminate\Auth\Middleware\Authorize::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
];

Я использую Laravel 5.8.

1 Ответ

0 голосов
/ 24 апреля 2019

Вы не можете попробовать это

Route::group(['middleware' => ['tenant']], function () {
    Route::group(['middleware' => ['auth']], function () {
        Route::group(['middleware' => ['manager_admin']], function () {
            Route::resource('invoice',  'InvoiceController');
        });
    });
});

или

Route::resource('invoice',  'InvoiceController')->middleware('tenant')->middleware('auth')->middleware('manager_admin');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...