Определение того, аутентифицирован ли текущий пользователь

Determining If Current User Is Authenticated



Проблема

Вы хотите узнать, вошел ли пользователь в систему.

Вы знаете, что Laravel автоматически сохраняет аутентифицированного пользователя в сеансе. Вы хотите проверить, есть ли в текущем запросе пользователь, авторизованный и аутентифицированный.







Решение

Используйте Auth::check() .



Auth::check() метод возвращает истину или ложь.



если (Auth::проверить())
{
выбросил 'Ура! Вы вошли в систему ».;
}

Обсуждение

Когда вы это делаете, за кулисами происходит несколько вещей.





Сначала Laravel проверяет, имеет ли текущий сеанс идентификатор пользователя. Если да, то делается попытка получить пользователя из базы данных.

Если это не удается, Laravel проверяет файл cookie «запомнить меня». Если это присутствует, то снова предпринимается попытка извлечь пользователя из базы данных.



Только если действительный пользователь получен из базы данных, возвращается true.

Фильтр «гость» использует этот метод.
Laravel предоставляет реализацию гостевого фильтра по умолчанию в app/filters.php .

Маршрут::фильтр('гость', функция()
{
если (Auth::проверить()) возвращениеПеренаправить::к('/');
});

Эта реализация по умолчанию используется, когда вы хотите добавить фильтр к маршруту, который доступен только для гостей (то есть пользователей, которые не вошли в систему). Если пользователь вошел в систему, он перенаправляется на домашнюю страницу.