IT TIP

라 라벨 가드 란 무엇입니까?

itqueen 2020. 12. 1. 20:19
반응형

라 라벨 가드 란 무엇입니까?


내장 된 인증 컨트롤러를 살펴 보았는데 "Guards"라는 것을 사용하는 것을 발견했습니다. 지금까지 내가 직접 로그인 / 등록 양식을 만들 때마다 나는 이것들을 건드리지 않았고 보통 다음과 같은 일을했습니다.

Auth::attempt()

어떤 종류의 가드도없이. 나는 그것이 정확히 무엇인지 찾아 보았지만 실제로 그것에 대한 정보를 찾을 수 없었습니다. 누군가 경비원의 목적이 무엇인지 설명해 줄 수 있습니까?


이는 시스템이 사용자에 대한 정보를 저장하고 검색하는 방법에 대한 정의입니다.

config/auth.php파일 에서 구성을 찾을 수 있습니다 . 웹 가드는 전통적인 쿠키 저장소입니다. 따라서 웹 가드는 Laravel이 고전적인 방식으로 세션 정보를 저장하고 검색하도록 지시합니다. 반면에 API 가드는 토큰을 사용합니다. 따라서 헤더 (bearer) 또는 쿼리 매개 변수에서 API 토큰을 사용하여 사용자 및 요청을 인증하려는 경우 API 가드를 사용합니다.

당신은 또한 수 있습니다 자신의 보호를 만들 원하는 경우,이 좋은 소개도있다 블로그 게시물 매트 스타 우퍼로 주제에 대한이.


가드는 인증 된 사용자를 식별하는 데 사용되는 논리를 제공하는 방법입니다. Laravel은 세션 및 토큰과 같은 다양한 가드를 제공합니다. 세션 가드는 쿠키를 통해 각 요청에서 사용자의 상태를 유지하고, 반면 토큰 가드는 모든 요청에서 유효한 토큰을 확인하여 사용자를 인증합니다.


나는 같은 질문을했고 다른 답변은 내가 찾고 있던 정보를 제공하지 않았기 때문에 (그들은 경비원이하는 일을 완벽하게 설명하지만 메서드 호출에 대해 걱정해야하는 이유는 아님), 또 다른 답변을 제공 할 것입니다.

나는 또한 auth()도우미가 제공하는 방법과 경비원이 제공하는 방법의 차이에 대해서도 확신하지 못했습니다 auth()->guard().

빠른 dd(auth())결과는 AuthManager. 따라서 소스 코드 에서 해당 클래스를 찾을 수 있습니다 . AuthManager.php 의 맨 아래 에는 정의되지 않은 모든 호출을 자체 메서드 로 전달 하는 __call() 매직 메서드guard()있습니다.

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

이것은 분명히 방법 있음을 보여줍니다 auth()auth()->guard()되지는 동일한 작업을 수행하는 것,하지만 정확히 동일합니다 . 기본 가드를 사용하는 ->guard()한 안심 하고 추가 를 생략 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/34896130/laravel-what-is-a-guard

반응형