Laravel, Что такое защита?

Я просматривал созданный в подлинных контроллерах, и я заметил, что они используют что-то позвонившее "гвардия". Вплоть до сих пор каждый раз, когда я сделал свои собственные формы логинов/регистра, я никогда не касался их и буду обычно просто делать вещи как:

Auth::attempt()

без любого типа защиты. Я попытался искать то, что точно это всего лишь, я не мог действительно найти информацию о нем, кто-то мог объяснить мне, какой цель защиты?

62
задан 20 January 2016 в 12:26

2 ответа

Защита является способом предоставить логику, которая используется для идентификации аутентифицируемых пользователей. Laravel обеспечивает различную защиту как сессии и маркеры. Защита сессии поддерживает состояние пользователя в каждом запросе cookie, и с другой стороны, маркерная защита аутентифицирует пользователя путем проверки допустимого маркера в каждый запрос.

2
ответ дан 31 October 2019 в 14:22

, Так как у меня были тот же вопрос и другие ответы, не предоставил мне информацию, которую я искал (они объясняют отлично, что защита делает, но не, почему необходимо когда-либо волноваться о вызове его методов), я предоставлю другой ответ.

я был также не уверен в различии между методами, предоставленными auth() помощник и методы, предоставленные самой защитой auth()->guard(), когда они, казалось, сделали то же.

А, быстрый dd(auth()), показывает, что возвращает экземпляр AuthManager. Таким образом, мы можем искать тот класс в [1 110] исходный код : В нижней части [1 113] AuthManager.php там __call() волшебный метод , который переводит все неопределенные вызовы к его собственному guard() метод.

public function __call($method, $parameters)
{
    return $this->guard()->{$method}(...$parameters);
}

Это ясно показывает нам, что методы auth() и auth()->guard() не только, кажется, делают, то же, но и точно тот же . Таким образом, пока защита по умолчанию должна использоваться, еще ->guard() могут быть опущены с душевным спокойствием.

0
ответ дан 31 October 2019 в 14:22