if you want to check the user is logged in or not, you can use the Auth facade or the auth() helper function. Here’s how you can do it:
1. Use the Auth Facade
The Auth::check() method returns true if the user is logged in, and false if the user is not logged in.
use Illuminate\Support\Facades\Auth;
if (Auth::check()) {
// User is logged in
return "User is logged in.";
} else {
// User is not logged in
return "User is not logged in.";
}
2. Use the auth() Helper
You can get the same results by using the auth() helper.
if (auth()->check()) {
// User is logged in
return "User is logged in.";
} else {
// User is not logged in
return "User is not logged in.";
}
3. In Blade Views
To conditionally check the user’s login status in Blade templates, use the following code:
@if(Auth::check()) <p>User is logged in.</p> @else <p>User is not logged in.</p> @endif
Alternatively, use auth():
@if(auth()->check()) <p>User is logged in.</p> @else <p>User is not logged in.</p> @endif
4. Middleware Approach
To make sure routes are only accessible to logged-in users, use Laravel’s auth middleware. Define it in your routes:
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware('auth');
For routes that should only be accessible to guests, use the guest middleware:
Route::get('/login', function () {
return view('login');
})->middleware('guest');
5. Checking the Authenticated User’s Data
If you want to get the logged-in user’s details, use the Auth::user() or auth()->user():
$user = Auth::user(); // or auth()->user();
if ($user) {
return "Logged-in user: " . $user->name;
} else {
return "No user is logged in.";
}
