Bestemme om den nåværende brukeren er autentisert

Bestemme om den nåværende brukeren er autentisert

Problem

Du vil se om en bruker er logget inn.

Du vet at Laravel automatisk holder den autentiserte brukeren i økten. Du vil sjekke om den gjeldende forespørselen har en bruker logget inn og autentisert.

Løsning

Bruk Auth :: Check ().

De Auth :: Check () Metoden returnerer sann eller falsk.

if (autor :: check ())

ekko "yay! Du er logget inn.";

Diskusjon

Flere ting skjer bak kulissene når du gjør dette.

First Laravel sjekker om den aktuelle økten har IDen til en bruker. I så fall blir det gjort et forsøk på å hente brukeren fra databasen.

Hvis det mislykkes, sjekker Laravel for "husk meg" -kake. Hvis det er til stede, blir det nok en gang gjort et forsøk på å hente brukeren fra databasen.

Bare hvis en gyldig bruker hentes fra databasen er ekte returnert.

"Gjest" -filteret bruker denne metoden
Laravel gir en standard implementering av gjestefilteret i App/filtre.PHP.

Rute :: filter ('gjest', funksjon ()

if (autht :: check ()) return Redirect :: til ('/');
);

Denne standardimplementeringen brukes når du vil legge til et filter på en rute som bare er tilgjengelig av gjester (aka brukere som ikke er logget inn). Hvis en bruker er logget inn, blir de omdirigert til hjemmesiden.