현재 사용자가 인증되었는지 확인

Determining If Current User Is Authenticated



문제

사용자가 로그인했는지 확인하고 싶습니다.

Laravel이 자동으로 인증된 사용자를 세션에 유지한다는 것을 알고 있습니다. 현재 요청에 로그인하고 인증된 사용자가 있는지 확인하려고 합니다.







해결책

|_+_|를 사용합니다.



|_+_| 메서드는 true 또는 false를 반환합니다.



만약 (인증::확인하다())
{
던졌다 '야! 로그인했습니다.';
}

논의

이 작업을 수행하면 뒤에서 여러 가지 일이 발생합니다.





먼저 Laravel은 현재 세션에 사용자의 ID가 있는지 확인합니다. 그렇다면 데이터베이스에서 사용자를 검색하려고 시도합니다.

이것이 실패하면 Laravel은 Remember me 쿠키를 확인합니다. 그것이 존재하면 데이터베이스에서 사용자를 검색하려는 시도가 다시 한 번 이루어집니다.



유효한 사용자가 데이터베이스에서 검색된 경우에만 true가 반환됩니다.

'게스트' 필터는 이 방법을 사용합니다.
Laravel은 |__+_|에서 게스트 필터의 기본 구현을 제공합니다.

노선::필터('손님', 기능()
{
만약 (인증::확인하다()) 반품리디렉션::에게('/');
});

이 기본 구현은 게스트(로그인하지 않은 사용자라고도 함)만 액세스할 수 있는 경로에 필터를 추가하려는 경우에 사용됩니다. 사용자가 로그인하면 홈 페이지로 리디렉션됩니다.