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

Метод setUser

Метод setUser класса Auth устанавливает переданный экземпляр пользователя как текущего аутентифицированного пользователя для указанного или стандартного guard. Метод принимает объект, реализующий интерфейс Authenticatable, и опционально имя guard. После вызова метода все последующие обращения к Auth::user или вспомогательной функции auth будут возвращать установленного пользователя. Это особенно удобно в модульных тестах, когда нужно симулировать аутентифицированного пользователя без выполнения реального процесса входа.

Синтаксис

<?php use Illuminate\Support\Facades\Auth; // Установка пользователя для стандартного guard Auth::setUser($user); // Установка пользователя для конкретного guard Auth::guard('admin')->setUser($user); ?>

Пример

Давайте установим пользователя в текущий контекст аутентификации с помощью метода setUser:

<?php use Illuminate\Support\Facades\Auth; use AppModelsUser; // Получаем пользователя из базы данных $user = User::find(1); // Устанавливаем пользователя как аутентифицированного Auth::setUser($user); // Получаем текущего пользователя $currentUser = Auth::user(); echo $currentUser->name; ?>

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

"John Doe"

Пример

Давайте используем метод setUser в контроллере для программной установки пользователя:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesAuth; use AppModelsUser; class UserController extends Controller { public function setUserAsAuthenticated($userId) { $user = User::find($userId); if ($user) { Auth::setUser($user); return response()->json([ 'message' => 'User set as authenticated', 'user' => Auth::user()->name ]); } return response()->json([ 'message' => 'User not found' ], 404); } } ?>

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

{"message":"User set as authenticated","user":"John Doe"}

Пример

Давайте используем метод setUser для разных guard в Laravel:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesAuth; use AppModelsUser; use AppModelsAdmin; class AuthController extends Controller { public function setUsersForGuards() { // Устанавливаем пользователя для стандартного guard $user = User::find(1); Auth::setUser($user); // Устанавливаем пользователя для admin guard $admin = Admin::find(1); Auth::guard('admin')->setUser($admin); // Получаем пользователей из разных guard $standardUser = Auth::user(); $adminUser = Auth::guard('admin')->user(); echo $standardUser->name; echo $adminUser->name; } } ?>

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

"John Doe" "Admin"

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

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