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

Метод once

Метод once класса Auth выполняет аутентификацию пользователя на один запрос, без сохранения состояния в сессии. Это полезно для API-запросов, где используется токен-аутентификация, или для однократных действий, где не требуется постоянная сессия. Метод принимает массив с учетными данными (обычно email и пароль) и возвращает true при успешной аутентификации или false в противном случае.

Синтаксис

<?php use Illuminate\Support\Facades\Auth; $res = Auth::once($credentials); ?>

Пример

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

<?php namespace AppHttpControllers; use IlluminateSupportFacadesAuth; use IlluminateHttpRequest; class AuthController extends Controller { public function loginOnce(Request $request) { $credentials = [ 'email' => $request->email, 'password' => $request->password ]; if (Auth::once($credentials)) { $user = Auth::user(); echo "Authenticated user: " . $user->name; } else { echo "Authentication failed"; } } } ?>

Пример

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

<?php namespace AppHttpControllers; use IlluminateSupportFacadesAuth; use IlluminateHttpRequest; class AuthController extends Controller { public function checkOnce(Request $request) { $credentials = [ 'email' => $request->email, 'password' => $request->password ]; if (Auth::once($credentials)) { echo "User is authenticated for this request"; if (Auth::guest()) { echo "But guest() returns true"; } else { echo "And guest() returns false"; } } } } ?>

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

"User is authenticated for this request" "But guest() returns true"

Пример

Используем метод once в контроллере API для получения данных пользователя:

<?php namespace AppHttpControllers; use IlluminateSupportFacadesAuth; use IlluminateHttpRequest; use AppModelsUser; class UserController extends Controller { public function getProfile(Request $request) { $credentials = [ 'email' => $request->email, 'password' => $request->password ]; if (Auth::once($credentials)) { $user = Auth::user(); $res = [ 'id' => $user->id, 'name' => $user->name, 'email' => $user->email ]; echo json_encode($res); } else { echo "Invalid credentials"; } } } ?>

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

{"id":1,"name":"John Doe","email":"john@example.com"}

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

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