Learn how to implement secure authentication systems in Laravel
Setup login and registration with Laravel Breeze
# Install Laravel Breeze
composer require laravel/breeze --dev
# Install and configure Breeze with Blade
php artisan breeze:install
# Install dependencies and build assets
npm install
npm run dev
# Run migrations
php artisan migrate
// routes/auth.php
use App\Http\Controllers\Auth\AuthenticatedSessionController;
use App\Http\Controllers\Auth\RegisteredUserController;
Route::middleware('guest')->group(function () {
Route::get('register', [RegisteredUserController::class, 'create'])
->name('register');
Route::post('register', [RegisteredUserController::class, 'store']);
Route::get('login', [AuthenticatedSessionController::class, 'create'])
->name('login');
Route::post('login', [AuthenticatedSessionController::class, 'store']);
});
Route::middleware('auth')->group(function () {
Route::post('logout', [AuthenticatedSessionController::class, 'destroy'])
->name('logout');
});
Token-based authentication with Laravel Sanctum
# Install Sanctum
composer require laravel/sanctum
# Publish configuration and migrations
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
# Run migrations
php artisan migrate
// routes/api.php
Route::post('/login', function (Request $request) {
$credentials = $request->validate([
'email' => ['required', 'email'],
'password' => ['required'],
]);
if (!Auth::attempt($credentials)) {
return response()->json([
'message' => 'Invalid credentials'
], 401);
}
$user = Auth::user();
$token = $user->createToken('api-token')->plainTextToken;
return response()->json([
'token' => $token,
'user' => $user
]);
});
Route::middleware('auth:sanctum')->group(function () {
Route::get('/user', function (Request $request) {
return $request->user();
});
});
Social Authentication
OAuth authentication with Laravel Socialite
Installation & Setup
Configuration & Implementation
Key Points