Проблема
Вы хотите узнать, вошел ли пользователь в систему.
Вы знаете, что Laravel автоматически сохраняет аутентифицированного пользователя в сеансе. Вы хотите проверить, есть ли в текущем запросе пользователь авторизованный и авторизованный.
Решение
Использовать Auth :: check ()
.
В Auth :: check ()
метод возвращает истину или ложь.
echo "Ура! Вы вошли в систему.";
Обсуждение
Когда вы это делаете, за кулисами происходит несколько вещей.
Сначала Laravel проверяет, есть ли у текущего сеанса идентификатор пользователя. Если да, то делается попытка получить пользователя из базы данных.
Если это не удается, Laravel проверяет наличие файла cookie «запомнить меня». Если он присутствует, то снова делается попытка получить пользователя из базы данных.
Только если действительный пользователь извлечен из базы данных, возвращается истина.
Фильтр "гость" использует этот метод
Laravel предоставляет реализацию гостевого фильтра по умолчанию в приложение / фильтры.php
.
если (Auth :: check ()) return Redirect :: to ('/');
);
Эта реализация по умолчанию используется, когда вы хотите добавить фильтр к маршруту, который доступен только для гостей (то есть пользователей, которые не вошли в систему). Если пользователь вошел в систему, он перенаправляется на домашнюю страницу.