Problem
Du vil se, om en bruger er logget ind.
Du ved, at Laravel automatisk holder den godkendte bruger i sessionen. Du vil kontrollere, om den aktuelle anmodning har en bruger logget ind og godkendt.
Opløsning
Brug Auth :: check ()
.
Det Auth :: check ()
metoden returnerer sand eller falsk.
ekko "Yay! Du er logget ind.";
Diskussion
Flere ting sker bag kulisserne, når du gør dette.
Først kontrollerer Laravel, om den aktuelle session har brugerens id. I så fald forsøges det at hente brugeren fra databasen.
Hvis det mislykkes, kontrollerer Laravel for "husk mig" cookien. Hvis det er til stede, forsøges igen at hente brugeren fra databasen.
Kun hvis en gyldig bruger hentes fra databasen returneres sandt.
'Gæst'-filteret bruger denne metode
Laravel leverer en standardimplementering af gæstefilteret i app / filtre.php
.
hvis (Auth :: afkryds ()) returner Redirect :: til ('/');
);
Denne standardimplementering bruges, når du vil tilføje et filter til en rute, der kun er tilgængelig for gæster (også kaldet brugere, der ikke er logget ind). Hvis en bruger er logget ind, bliver de omdirigeret til hjemmesiden.