Authentication
LaravelLaravel provides several authentication systems. Laravel Breeze is the simplest — it gives you login, register, password reset out of the box.
Install Laravel Breeze
Terminal
composer require laravel/breeze --dev
php artisan breeze:install blade
php artisan migrate
npm install && npm run devAuth Helpers
PHP
<?php
// Check if logged in
if (auth()->check()) { ... }
// Get current user
$user = auth()->user();
echo $user->name;
echo $user->email;
// Get user ID
$userId = auth()->id();
// Login manually
auth()->login($user);
auth()->login($user, $remember = true); // Remember me
// Logout
auth()->logout();
// Check in Blade
@auth
<p>Welcome, {{ auth()->user()->name }}!</p>
@endauth
@guest
<a href="/login">Login</a>
@endguest
?>Manual Login
PHP
<?php
public function login(Request $request)
{
$credentials = $request->validate([
'email' => 'required|email',
'password' => 'required',
]);
if (auth()->attempt($credentials, $request->boolean('remember'))) {
$request->session()->regenerate();
return redirect()->intended('/dashboard');
}
return back()->withErrors([
'email' => 'These credentials do not match our records.',
]);
}
public function logout(Request $request)
{
auth()->logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/');
}
?>Protecting Routes
PHP
<?php
// Protect routes with auth middleware
Route::middleware('auth')->group(function () {
Route::get('/dashboard', [DashboardController::class, 'index']);
Route::get('/profile', [ProfileController::class, 'show']);
});
// In controller
public function __construct()
{
$this->middleware('auth');
$this->middleware('auth')->only(['create', 'store', 'edit', 'update', 'destroy']);
$this->middleware('guest')->only(['login', 'register']);
}
?>💡
Use Sanctum for API authentication! Install with
composer require laravel/sanctum. It provides token-based auth for SPAs and mobile apps — much simpler than Passport for most use cases.Test your knowledge!
Take a quiz to reinforce what you learned.