проверить несколько охранников в контроллере Laravel

Я создаю три типа охранников в Laravel
мой файл auth.php выглядит так

<?php

return [



'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],



'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'student' => [
'driver' => 'session',
'provider' => 'students',
],
'finance' => [
'driver' => 'session',
'provider' => 'finances',
],

'admin-api' => [
'driver' => 'token',
'provider' => 'admins',
],
'finance-api' => [
'driver' => 'token',
'provider' => 'finances',
],
],



'providers' => [
'students' => [
'driver' => 'eloquent',
'model' => App\student::class,
],
'finances' => [
'driver' => 'eloquent',
'model' => App\Finance::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\users::class,
],
'finance' => [
'driver' => 'eloquent',
'model' => App\users::class,
],


// 'users' => [
//     'driver' => 'database',
//     'table' => 'users',
// ],
],



'passwords' => [
'students' => [
'provider' => 'students',
'table' => 'password_resets',
'expire' => 60,
],
'finances' => [
'provider' => 'finances',
'table' => 'password_resets',
'expire' => 60,
],
'admins' => [
'provider' => 'admins',
'table' => 'password_resets',
'expire' => 15,
],
'finance' => [
'provider' => 'finance',
'table' => 'password_resets',
'expire' => 15,
],
],
];

Я могу проверять аутентификационных пользователей, но у нас есть некоторый маршрут и контроллер, которые одинаковы для всех пользователей, и мне нужно проверить все охранники в тех же маршрутах или контроллерах для каждого типа пользователей, которые входят в систему.

Как я могу проверить несколько охранников в одном контроллере или маршруте?

3

Решение

Для каждого контроллера, который вы хотите аутентификации

public function __construct()
{
$this->middleware('auth:admin,student,finance');
}

ИЛИ ЖЕ
Вы можете использовать в маршруте

Route::group(['middleware' => 'auth:admin,finance,student'], function () {
any same route here
});

И вы можете получить доступ к деталям пользователей в Blade, как это

{{ Auth::guard('admin')->user()->name }} {{ Auth::guard('admin')->user()->last_name }}

Я надеюсь, что это помогает кому-то.

5

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

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

По вопросам рекламы [email protected]