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

Метод onceUsingId

Метод onceUsingId применяется к фасаду Auth и выполняет аутентификацию пользователя по его идентификатору только для текущего запроса. В отличие от loginUsingId, данный метод не сохраняет сессию и не запоминает пользователя, что делает его идеальным для API-запросов или разовых проверок. Первым параметром передаётся идентификатор пользователя, вторым необязательным параметром - булево значение, указывающее, следует ли запомнить пользователя. Метод возвращает true или false в зависимости от успешности аутентификации.

Синтаксис

<?php Auth::onceUsingId($id, $remember); ?>

Пример

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

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Auth; class UserController extends Controller { public function show($id) { if (Auth::onceUsingId($id)) { $user = Auth::user(); echo "User authenticated: " . $user->name; } else { echo "User not found"; } } } ?>

При передаче идентификатора существующего пользователя:

"User authenticated: John Doe"

Пример

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

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Auth; use App\Models\User; class AuthController extends Controller { public function temporaryAuth($userId) { $user = User::find($userId); if ($user && Auth::onceUsingId($userId, true)) { echo "User " . $user->email . " authenticated temporarily"; return Auth::user(); } echo "Authentication failed"; return null; } } ?>

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

"User john@example.com authenticated temporarily"

Пример

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

<?php namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\Auth; class CheckUserAccess { public function handle($request, Closure $next, $userId) { if (Auth::onceUsingId($userId)) { return $next($request); } return response('Unauthorized', 401); } } ?>

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

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