Метод loginUsingId
Метод loginUsingId класса Auth позволяет выполнить вход в систему пользователя по его первичному ключу (обычно это поле id). В отличие от метода attempt, этот метод не требует передачи пароля или других данных для проверки, он просто находит пользователя по указанному идентификатору и авторизует его. Это удобно в ситуациях, когда разработчик уверен в личности пользователя и хочет выполнить автоматический вход без проверки учётных данных, например, при переходе между системами или для административных действий. Метод первым параметром принимает идентификатор пользователя, вторым параметром - булево значение, указывающее, следует ли запомнить пользователя (параметр необязательный, по умолчанию false).
Синтаксис
<?php
Auth::loginUsingId($id, $remember = false);
?>
Пример
Давайте авторизуем пользователя с идентификатором 5:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
class AuthController extends Controller
{
public function loginUser()
{
$id = 5;
Auth::loginUsingId($id);
$res = 'User login successfully with id: ' . Auth::id();
echo $res;
}
}
?>
Результат выполнения кода:
"User login successfully with id: 5"
Пример
Давайте авторизуем пользователя с идентификатором 10 и установим флаг запоминания:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
class AuthController extends Controller
{
public function loginUserWithRemember()
{
$id = 10;
$remember = true;
Auth::loginUsingId($id, $remember);
$res = 'User login successfully with id: ' . Auth::id();
echo $res;
}
}
?>
Результат выполнения кода:
"User login successfully with id: 10"
Пример
Попробуем авторизовать пользователя с несуществующим идентификатором:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
class AuthController extends Controller
{
public function loginInvalidUser()
{
$id = 999;
$res = Auth::loginUsingId($id);
if ($res === false) {
echo 'User not found with id: ' . $id;
} else {
echo 'User login successfully with id: ' . $id;
}
}
}
?>
Результат выполнения кода:
"User not found with id: 999"
Смотрите также
-
класс
Auth,
который предоставляет методы для аутентификации -
метод
attempt,
который выполняет аутентификацию по учётным данным -
метод
login,
который авторизует переданного пользователя -
метод
onceUsingId,
который выполняет аутентификацию без сохранения сессии