Я использую рамку Laravel Я хочу использовать более одного охранник в моем маршруте, как:более одного охранника в пути
Route::group([ 'middleware' => 'jwt.auth', 'guard' => ['biker','customer','operator']], function() {}
У меня есть сценарий в AuthServiceProvider.php
, как показано ниже в загрузочном разделе:
$this->app['router']->matched(function (\Illuminate\Routing\Events\RouteMatched $event) {
$route = $event->route;
if (!array_has($route->getAction(), 'guard')) {
return;
}
$routeGuard = array_get($route->getAction(), 'guard');
$this->app['auth']->resolveUsersUsing(function ($guard = null) use ($routeGuard) {
return $this->app['auth']->guard($routeGuard)->user();
});
$this->app['auth']->setDefaultDriver($routeGuard);
});
Это работает только с одним охранником в маршрут как 'guard'=>'biker'
Так как изменить этот код в AuthServiceProvider.php работать с более чем одним Gaurd в маршруте
Я не думаю, что Laravel позволяет несколько охранников на маршруте. Вероятно, вам нужно переосмыслить свою стратегию на основе этого (т. Е. Один охранник и достичь этой функциональности с помощью промежуточного программного обеспечения) – apokryfos
, потому что у меня есть 3 защитника в моем 'auth.php', а laravel не может установить multi guard по умолчанию, и когда я запускаю api с jwt, чтобы проанализировать этот токен, чтобы узнать, какой запрошенный тип пользователя показывает мне «user_not_found», потому что это 3 модели для пользователей, и я не знаю, как обрабатывать пользователей с помощью нескольких моделей. – amirali
Проблема в том, что то, что вы делаете, не является стандартная вещь, чтобы сделать это, Laravel не может справиться с этим из коробки, поэтому я предложил вам переключиться на стандартный способ делать что-то, например, с одной пользовательской моделью, с одним охранником и с различными проверками типа пользователя через промежуточное программное обеспечение. В противном случае вам придется в основном переписать свои собственные драйверы аутентификации и охранники. – apokryfos