Xác định xem người dùng hiện tại có được xác thực hay không

Determining If Current User Is Authenticated



Vấn đề

Bạn muốn xem người dùng đã đăng nhập chưa.

Bạn biết Laravel tự động giữ người dùng được xác thực trong phiên. Bạn muốn kiểm tra xem yêu cầu hiện tại đã có người dùng đăng nhập và xác thực chưa.







Dung dịch

Sử dụng Auth::check() .



Auth::check() phương thức trả về true hoặc false.



nếu như (Auth::đánh dấu())
{
quăng đi 'Yay! Bạn đã đăng nhập. ';
}

Thảo luận

Một số điều xảy ra đằng sau hậu trường khi bạn làm điều này.





Laravel đầu tiên kiểm tra xem phiên hiện tại có id của người dùng hay không. Nếu vậy, thì một nỗ lực được thực hiện để truy xuất người dùng từ cơ sở dữ liệu.

Nếu không thành công, thì Laravel sẽ kiểm tra cookie nhớ tôi. Nếu đó là hiện tại thì một lần nữa, một nỗ lực được thực hiện để truy xuất người dùng từ cơ sở dữ liệu.



Chỉ khi người dùng hợp lệ được truy xuất từ ​​cơ sở dữ liệu mới được trả về true.

Bộ lọc 'khách' sử dụng phương pháp này
Laravel cung cấp triển khai mặc định của bộ lọc khách trong app/filters.php .

Tuyến đường::lọc('khách', hàm số()
{
nếu như (Auth::đánh dấu()) trở lạiChuyển hướng::đến('/');
});

Triển khai mặc định này được sử dụng khi bạn muốn thêm bộ lọc vào một tuyến đường mà chỉ khách (còn gọi là người dùng chưa đăng nhập) mới có thể truy cập. Nếu người dùng đã đăng nhập thì họ sẽ được chuyển hướng đến trang chủ.