Menentukan sama ada Pengguna Semasa Disahkan

Determining If Current User Is Authenticated



Masalah

Anda ingin melihat sama ada pengguna log masuk.

Anda tahu Laravel menyimpan pengguna yang disahkan secara automatik dalam sesi tersebut. Anda ingin memeriksa sama ada permintaan semasa mempunyai pengguna yang log masuk dan disahkan.







Penyelesaian

Gunakan Auth::check() .



The Auth::check() kaedah mengembalikan benar atau salah.



sekiranya (Pengarang::periksa())
{
membuang 'Yay! Anda log masuk. ';
}

Perbincangan

Beberapa perkara berlaku di belakang tabir ketika anda melakukan ini.





Laravel Pertama memeriksa sama ada sesi semasa mempunyai id pengguna. Sekiranya demikian, maka usaha dilakukan untuk mengambil pengguna dari pangkalan data.

Sekiranya gagal, Laravel akan memeriksa kuki ingat saya. Sekiranya ada, sekali lagi usaha dilakukan untuk mengambil pengguna dari pangkalan data.



Hanya jika pengguna yang sah diambil dari pangkalan data, dikembalikan benar.

Penapis ‘tetamu’ menggunakan kaedah ini
Laravel menyediakan pelaksanaan lalai penapis tetamu di app/filters.php .

Laluan::tapis('tetamu', fungsi()
{
sekiranya (Pengarang::periksa()) kembaliUbah hala::ke('/');
});

Pelaksanaan lalai ini digunakan ketika anda ingin menambahkan penapis ke laluan yang hanya dapat diakses oleh tetamu (aka pengguna yang tidak log masuk). Sekiranya pengguna log masuk maka mereka diarahkan ke halaman utama.