РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
705 of 1392 menu

Класс Auth

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

Синтаксис

<?php use Illuminate\Support\Facades\Auth; // Проверка аутентификации if (Auth::check()) { // Пользователь аутентифицирован } // Получение текущего пользователя $user = Auth::user(); // Попытка входа if (Auth::attempt($credentials)) { // Вход выполнен } // Выход пользователя Auth::logout(); ?>

Пример

Проверяем, аутентифицирован ли пользователь, и выводим его имя:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Auth; class ProfileController extends Controller { public function show() { if (Auth::check()) { $user = Auth::user(); echo "Welcome, " . $user->name; } else { echo "Please log in"; } } } ?>

Результат выполнения кода:

"Welcome, John Doe"

Пример

Выполняем вход пользователя по email и паролю:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Auth; use Illuminate\Http\Request; class AuthController extends Controller { public function login(Request $request) { $credentials = [ 'email' => $request->email, 'password' => $request->password, ]; if (Auth::attempt($credentials)) { echo "Login successful"; return redirect()->intended('/dashboard'); } echo "Invalid credentials"; return back()->withErrors([ 'email' => 'The provided credentials do not match our records.', ]); } } ?>

Результат выполнения кода:

"Login successful"

Пример

Выполняем выход пользователя и очищаем сессию:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Auth; use Illuminate\Http\Request; class AuthController extends Controller { public function logout(Request $request) { Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect('/login'); } } ?>

Пример

Проверяем, гость ли пользователь, и выполняем вход с указанием гарда:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Auth; class AdminController extends Controller { public function login() { if (Auth::guest()) { $credentials = [ 'email' => 'admin@example.com', 'password' => 'secret123', ]; if (Auth::guard('admin')->attempt($credentials)) { echo "Admin logged in"; } } else { echo "User is already logged in"; } } } ?>

Результат выполнения кода:

"Admin logged in"

Пример

Получаем ID текущего аутентифицированного пользователя:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Auth; use App\Models\Post; class PostController extends Controller { public function store() { $userId = Auth::id(); if ($userId) { $post = new Post(); $post->user_id = $userId; $post->title = 'My Post'; $post->content = 'Content of my post'; $post->save(); echo "Post created by user ID: " . $userId; } else { echo "User not authenticated"; } } } ?>

Результат выполнения кода:

"Post created by user ID: 5"

Смотрите также

  • метод attempt,
    который выполняет попытку входа пользователя
  • метод check,
    который проверяет аутентифицирован ли пользователь
  • метод user,
    который возвращает текущего аутентифицированного пользователя
  • метод logout,
    который выполняет выход пользователя из системы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить