Nosakot, vai pašreizējais lietotājs ir autentificēts

Determining If Current User Is Authenticated



Problēma

Jūs vēlaties redzēt, vai lietotājs ir pieteicies.

Jūs zināt, ka Laravel sesijā automātiski saglabā autentificēto lietotāju. Jūs vēlaties pārbaudīt, vai pašreizējā pieprasījumā ir pieteicies un autentificēts lietotājs.







Risinājums

Izmantojiet | _+_ |.



| _+_ | metode atgriež patiesu vai nepatiesu.



ja (Aut::pārbaudiet())
{
izmest ārā 'Jā! Jūs esat pieteicies. ';
}

Diskusija

To darot, aizkulisēs notiek vairākas lietas.





Vispirms Laravel pārbauda, ​​vai pašreizējai sesijai ir lietotāja ID. Ja tā, tad tiek mēģināts izgūt lietotāju no datu bāzes.

Ja tas neizdodas, Laravel pārbauda sīkfailu “atcerēties mani”. Ja tas ir klāt, tad vēlreiz tiek mēģināts izgūt lietotāju no datu bāzes.



Patiess tiek atgriezts tikai tad, ja no datu bāzes tiek izgūts derīgs lietotājs.

Filtrs “viesis” izmanto šo metodi
Laravel nodrošina noklusējuma viesu filtra ieviešanu | _+_ |.

Maršruts::filtrs('viesis', funkciju()
{
ja (Aut::pārbaudiet()) atgrieztiesNovirzīt::uz('/');
});

Šī noklusējuma ieviešana tiek izmantota, ja vēlaties pievienot filtru maršrutam, kuram var piekļūt tikai viesi (aka lietotāji, kuri nav pieteikušies). Ja lietotājs ir pieteicies, viņš tiek novirzīts uz sākumlapu.