Menentukan apakah Pengguna Saat Ini Diautentikasi

Determining If Current User Is Authenticated



Masalah

Anda ingin melihat apakah pengguna masuk.

Anda tahu Laravel secara otomatis menyimpan pengguna yang diautentikasi dalam sesi. Anda ingin memeriksa apakah permintaan saat ini memiliki pengguna yang masuk dan diautentikasi.







Larutan

Gunakan |_+_|.



|_+_| metode mengembalikan benar atau salah.



jika (Otentik::memeriksa())
{
dibuang 'Ya! Anda masuk.';
}

Diskusi

Beberapa hal terjadi di balik layar ketika Anda melakukan ini.





Laravel pertama memeriksa apakah sesi saat ini memiliki id pengguna. Jika demikian, maka upaya dilakukan untuk mengambil pengguna dari database.

Jika gagal, maka Laravel memeriksa cookie ingat saya. Jika itu ada maka sekali lagi upaya dilakukan untuk mengambil pengguna dari database.



Hanya jika pengguna yang valid diambil dari database benar dikembalikan.

Filter 'tamu' menggunakan metode ini
Laravel menyediakan implementasi default dari filter tamu di |_+_|.

Rute::Saring('tamu', fungsi()
{
jika (Otentik::memeriksa()) kembaliArahkan ulang::ke('/');
});

Implementasi default ini digunakan ketika Anda ingin menambahkan filter ke rute yang hanya dapat diakses oleh tamu (alias pengguna yang tidak login). Jika pengguna login maka mereka akan diarahkan ke halaman rumah.