Метод check
Метод check класса Auth проверяет, аутентифицирован ли текущий пользователь в системе. Метод возвращает булево значение: true, если пользователь авторизован, и false, если нет. Данный метод часто используется в контроллерах и шаблонах для проверки статуса аутентификации перед выполнением определённых действий.
Синтаксис
<?php
use Illuminate\Support\Facades\Auth;
$res = Auth::check();
?>
Пример
Давайте проверим, авторизован ли пользователь в контроллере, и в зависимости от этого выполним разные действия:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
class UserController extends Controller
{
public function profile()
{
if (Auth::check()) {
$user = Auth::user();
return view('profile', ['user' => $user]);
} else {
return redirect()->route('login');
}
}
}
?>
Результат выполнения кода:
"redirect to login page"
Пример
Используем метод check в шаблоне Blade для условного отображения контента в зависимости от статуса аутентификации:
@auth
<div>
<p>Welcome back, {{ Auth::user()->name }}</p>
<a href="/logout">Logout</a>
</div>
@endauth
@guest
<div>
<p>Please login or register</p>
<a href="/login">Login</a>
<a href="/register">Register</a>
</div>
@endguest
Пример
Проверим авторизацию пользователя в middleware, чтобы защитить определённые маршруты от неавторизованного доступа:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class Authenticate
{
public function handle($request, Closure $next)
{
if (!Auth::check()) {
return redirect()->route('login');
}
return $next($request);
}
}
?>
Результат выполнения кода:
"redirect to login page"