Как правильно определять, какой guard используется в сессии?

В Laravel, guard - это система аутентификации, которая определяет, какие пользователи имеют доступ к различным ресурсам вашего приложения. Каждый guard имеет свои настройки и драйверы аутентификации.

Чтобы определить, какой guard используется в текущей сессии, вы можете воспользоваться методом guard() из фасада Auth.

Вот пример:

use IlluminateSupportFacadesAuth;

$guard = Auth::guard(); // Получаем guard в текущей сессии

$guardName = $guard->getName(); // Получаем название guard

if ($guardName === 'web') {
    // Guard 'web' используется в текущей сессии
    // Ваш код здесь
} elseif ($guardName === 'api') {
    // Guard 'api' используется в текущей сессии
    // Ваш код здесь
} else {
    // Ни один из заданных guard не используется в текущей сессии
    // Ваш код здесь
}

Метод getName() возвращает название guard, который используется в текущей сессии. В приведенном выше примере мы проверяем название guard и выполняем соответствующий код в зависимости от результата.

Вы также можете использовать метаполя guard в вашей модели пользователя, чтобы определить, какой guard был использован при аутентификации пользователя. Например:

$user = Auth::user();

$guardName = $user->guard_name;

if ($guardName === 'web') {
    // Пользователь был аутентифицирован с помощью guard 'web'
} elseif ($guardName === 'api') {
    // Пользователь был аутентифицирован с помощью guard 'api'
} else {
    // Пользователь был аутентифицирован с помощью другого guard
}

В этом примере мы получаем текущего пользователя с помощью метода user() из фасада Auth, а затем проверяем значение метаполя guard_name в модели пользователя. Это метаполе можно настроить в вашей модели пользователя, чтобы сохранять информацию о guard, используемом при аутентификации.