the_goldmayer
@the_goldmayer
Кот.

Что делает Guard и для чего он нужен?

В чём разница между auth()->guard()->user() и auth()->user()?

Также auth()->attempt(...) и auth()->guard()->attempt(...)
  • Вопрос задан
  • 3799 просмотров
Решения вопроса 1
Lyrium
@Lyrium
Web developer
О том что ищете можно почитать в офф. документации или в переводе

Вырезки из перевода:
Guards, "гарды", "охранники". Это по сути правила аутентификации пользователя - в каких частях запроса хранить информацию о том, что данный запрос идет от аутентифицированного пользователя. Например, это можно делать в сессии/куках, или в некотором токене, который должен содержаться в каждом запросе. В Laravel это гарды session и token соответственно.

Вы также можете назначить специфичный гард для обработки процесса аутентификации. Для этого создайте свойство guard в вашем классе AuthController. Значением этого свойства должно быть название одного из гардов, определённых вами в файле config/auth.php.

protected $guard = 'admin';

Вы можете явно задать, при помощи какого гарда обслуживать процесс авторизации. Это позволит вам иметь в приложении несколько частей, вход в которые осуществляется по своим правилам. Пользователь может быть залогинен в одну из них, или несколько. Самый простой пример - это админка. Ваш гард admin определяет правило, залогинен данный пользователь как админ, или нет - например, установкой специальной куки.

Тогда при логине в админку вы делаете так:

if (Auth::guard('admin')->attempt($credentials)) {
    //
}


Вы также можете явно указать гард, при помощи которого будете фиксировать процесс аутентификации.

Auth::guard('admin')->login($user);

Также можно создать свой кастомный гард, почитать об этом тут
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы