Authentication Sistemi
Laravel, kullanıcı kimlik doğrulaması için hazır çözümler sunar.
Laravel Breeze Kurulumu
# Breeze kurulumu
composer require laravel/breeze --dev
# Breeze scaffold'unu yükle
php artisan breeze:install
# Seçenekler:
# - blade (klasik)
# - livewire
# - react
# - vue
# - api (sadece API)
# Assets'i derle
npm install && npm run dev
# Migration'ları çalıştır
php artisan migrate
Auth Facade Kullanımı
use Illuminate\Support\Facades\Auth;
// Giriş kontrolü
if (Auth::check()) {
// Kullanıcı giriş yapmış
}
if (Auth::guest()) {
// Kullanıcı giriş yapmamış
}
// Giriş yapmış kullanıcı
$user = Auth::user();
$userId = Auth::id();
// Helper fonksiyonlar
$user = auth()->user();
$userId = auth()->id();
$isLoggedIn = auth()->check();
// Manuel giriş
if (Auth::attempt(['email' => $email, 'password' => $password])) {
// Giriş başarılı
return redirect()->intended('dashboard');
}
// Remember me ile
Auth::attempt($credentials, $remember = true);
// Kullanıcı ile giriş
Auth::login($user);
Auth::login($user, $remember = true);
// ID ile giriş
Auth::loginUsingId(1);
// Çıkış
Auth::logout();
// Session'ı invalidate et ve token yenile
$request->session()->invalidate();
$request->session()->regenerateToken();
Middleware ile Koruma
// Route'larda
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware('auth');
// Grup olarak
Route::middleware('auth')->group(function () {
Route::get('/profile', [ProfileController::class, 'show']);
Route::get('/settings', [SettingsController::class, 'index']);
});
// Controller constructor'da
class ProfileController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
}
// Guest (giriş yapmamış) için
Route::get('/login', [AuthController::class, 'showLogin'])
->middleware('guest');
Password Hashing
use Illuminate\Support\Facades\Hash;
// Hash oluşturma
$hashed = Hash::make('password');
$hashed = bcrypt('password'); // Kısayol
// Hash doğrulama
if (Hash::check('password', $hashedPassword)) {
// Eşleşiyor
}
// User model'de otomatik hash (mutator)
class User extends Authenticatable
{
protected function password(): Attribute
{
return Attribute::make(
set: fn ($value) => Hash::make($value),
);
}
}
Email Verification
// User model
class User extends Authenticatable implements MustVerifyEmail
{
// ...
}
// Route'lar (Breeze otomatik ekler)
Route::get('/email/verify', function () {
return view('auth.verify-email');
})->middleware('auth')->name('verification.notice');
// Verified middleware
Route::get('/dashboard', function () {
// Sadece email doğrulanmış kullanıcılar
})->middleware(['auth', 'verified']);
Password Reset
use Illuminate\Support\Facades\Password;
// Reset link gönder
$status = Password::sendResetLink(
$request->only('email')
);
return $status === Password::RESET_LINK_SENT
? back()->with('status', __($status))
: back()->withErrors(['email' => __($status)]);
// Şifre sıfırlama
$status = Password::reset(
$request->only('email', 'password', 'password_confirmation', 'token'),
function ($user, $password) {
$user->forceFill([
'password' => Hash::make($password)
])->save();
}
);
Önemli Noktalar
- Laravel Breeze en basit auth scaffold'u
- Auth facade ile authentication işlemleri
- auth() helper ile kullanıcıya erişim
- Guards farklı kullanıcı tipleri için
- Password hashing otomatik yapılır