Использование @auth и @guest с мульти-аутентификацией в Laravel: пошаговое руководство

Чтобы использовать директивы @authи @guestв Laravel с мульти-аутентификацией, вы можете выполнить следующие действия:

  1. Определите несколько средств защиты. В файле config/auth.phpопределите несколько средств защиты аутентификации, добавив новые записи в массив guards. У каждого охранника должно быть уникальное имя и соответствующий поставщик.

    'guards' => [
       'web' => [
           'driver' => 'session',
           'provider' => 'users',
       ],
       'admin' => [
           'driver' => 'session',
           'provider' => 'admins',
       ],
    ],
  2. Создание нескольких поставщиков пользователей. В том же файле config/auth.phpопределите несколько поставщиков пользователей в массиве providers. Каждый поставщик должен иметь уникальное имя и соответствующую модель.

    'providers' => [
       'users' => [
           'driver' => 'eloquent',
           'model' => App\Models\User::class,
       ],
       'admins' => [
           'driver' => 'eloquent',
           'model' => App\Models\Admin::class,
       ],
    ],
  3. Используйте директивы в шаблонах Blade: теперь вы можете использовать директивы @authи @guestс указанными средствами защиты в шаблонах Blade.

    @auth('web')
       <!-- Content for web authenticated users -->
    @endauth
    @guest('admin')
       <!-- Content for admin guests -->
    @endguest

    Директива @authпроверяет, прошел ли пользователь аутентификацию с использованием указанного средства защиты, а директива @guestпроверяет, является ли пользователь гостем для указанного средства защиты.

Следуя этим шагам, вы сможете использовать директивы @authи @guestс множественной аутентификацией в Laravel.