Sitemize hoşgeldiniz!  ::  Son eklenen yazı: Git’te “master” mı “main” mi? Bir kelimenin ardındaki hikâye  ::  Toplam 63 yazı  ::  Görüş ve önerileriniz için iletişim sayfasını kullanabilirsiniz.
» Menü
Anasayfa
Hakkımda
İletişim
» Kategoriler
› nostalji (8)
› laravel (7)
› php (5)
› web (3)
› agile (3)
› go (2)
› golang (2)
› api (2)
› redis (2)
› git (2)
› github (2)
› model (1)
» Arşiv
› Ekim 2025 (2)
› Temmuz 2025 (1)
› Nisan 2025 (3)
› Mart 2025 (5)
› Şubat 2025 (1)
› Ocak 2025 (43)
› Haziran 2011 (1)
› Kasım 2009 (1)
› Temmuz 2009 (1)
› Temmuz 2007 (1)
› Ocak 2007 (1)
› Kasım 2006 (1)
› Ekim 2006 (1)
› Ağustos 2006 (1)
Anasayfa » Yazılar » Authentication ve Yetkilendirme: Laravel’de Güvenlik
Authentication ve Yetkilendirme: Laravel’de Güvenlik
Yazan: Atilla Mutlu | Tarih: 14.01.2025 10:41 | Kategori: Authentication

Laravel, modern web uygulamalarında güvenlik özelliklerini kolay ve etkili bir şekilde sunan bir frameworktür. Authentication (kimlik doğrulama) ve Authorization (yetkilendirme), uygulamaların güvenliğini sağlamak için temel bileşenlerdir.


1. Authentication (Kimlik Doğrulama)

Kimlik doğrulama, bir kullanıcının kim olduğunu belirlemeye yönelik işlemdir. Laravel, kimlik doğrulama süreçlerini basitleştirmek için hazır özellikler sunar.

a. Laravel Breeze ile Hızlı Kurulum

Laravel Breeze, temel kimlik doğrulama sistemi kurmanızı kolaylaştırır.

Kurulum Adımları:
  1. Laravel projesine Breeze yükleyin:

    composer require laravel/breeze --dev
  2. Breeze’i kurun:

    php artisan breeze:install
  3. Bağımlıkları yükleyin ve front-end yapısını oluşturun:

    npm install && npm run dev
  4. Migration dosyalarını çalıştırın:

    php artisan migrate

b. Sanctum ile API Authentication

Laravel Sanctum, API tabanlı uygulamalar için kimlik doğrulama çözümleri sunar.

Kurulum Adımları:
  1. Sanctum paketini kurun:

    composer require laravel/sanctum
  2. Middleware’i ekleyin:
    app/Http/Kernel.php dosyasına şu middleware'i ekleyin:

    'api' => [
       \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
       'throttle:api',
       \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],
  3. Sanctum tablolarını oluşturun:

    php artisan migrate
  4. Kullanıcıyı kimlik doğrulama tokenı ile giriş yaptırın:

    use Illuminate\Http\Request;
    
    Route::post('/login', function (Request $request) {
       $user = User::where('email', $request->email)->first();
    
       if (! $user || ! Hash::check($request->password, $user->password)) {
           return response(['message' => 'Unauthorized'], 401);
       }
    
       return ['token' => $user->createToken('api-token')->plainTextToken];
    });

2. Authorization (Yetkilendirme)

Yetkilendirme, kullanıcıların belirli kaynaklara veya işlemlere erişim izinlerini kontrol eder.

a. Gate Kullanımı

Gate, belirli işlemleri kontrol etmek için kullanılan basit bir mekanizmadır.

Gate Tanımlama:

App\Providers\AuthServiceProvider dosyasında bir gate tanımlayabilirsiniz:

use Illuminate\Support\Facades\Gate;

public function boot()
{
    Gate::define('update-post', function ($user, $post) {
        return $user->id === $post->user_id;
    });
}
Gate Kontrolü:
if (Gate::allows('update-post', $post)) {
    // Kullanıcı bu işlemi yapabilir
}

if (Gate::denies('update-post', $post)) {
    // Kullanıcı bu işlemi yapamaz
}

b. Policy Kullanımı

Policy, bir modelle ilgili yetkilendirme mantığını organize etmek için kullanılır.

Policy Oluşturma:
php artisan make:policy PostPolicy
Policy Tanımlama:

PostPolicy dosyasında yetkilendirme metodları tanımlanabilir:

public function update(User $user, Post $post)
{
    return $user->id === $post->user_id;
}
Policy'yi AuthServiceProvider'a Kaydetme:

AuthServiceProvider dosyasına policy'yi kaydedin:

protected $policies = [
    Post::class => PostPolicy::class,
];
Policy Kullanımı:
if ($user->can('update', $post)) {
    // Kullanıcı yetkili
}

3. Middleware ile Yetkilendirme

Laravel middleware, belirli rotalara erişim ızını kontrol etmek için kullanılır.

Middleware Oluşturma:

php artisan make:middleware CheckRole

Middleware Mantığı:

CheckRole dosyasında yetki kontrolü yapın:

public function handle($request, Closure $next, $role)
{
    if (! $request->user() || $request->user()->role !== $role) {
        return redirect('home');
    }

    return $next($request);
}

Middleware'i Route’da Kullanma:

Route::get('/admin', function () {
    // Yönetici paneli
})->middleware('checkRole:admin');

4. Laravel Fortify ile Gelişmiş Authentication

Laravel Fortify, kimlik doğrulama ve iki faktörlü kimlik doğrulama gibi özellikleri destekler.

Fortify Kurulumu:
composer require laravel/fortify
Fortify Yapılandırması:

App\Providers\FortifyServiceProvider dosyasını oluşturun ve kaydedin:

Fortify::loginView(function () {
    return view('auth.login');
});

5. Özelleştirilebilir Authentication

Laravel, kendi authentication sisteminizi oluşturmanıza olanak tanır. Auth facadeı ile giriş yapma, çıkış yapma ve kullanıcı bilgilerini doğrulama işlemleri kolayca yapılabilir.

Giriş Yapma:

if (Auth::attempt(['email' => $email, 'password' => $password])) {
    // Kullanıcı doğrulandı
}

Çıkış Yapma:

Auth::logout();

Sonuç

Laravel, kimlik doğrulama ve yetkilendirme süreçlerini kolaylaştıran zengin bir özellik setine sahiptir. Gelişmiş yapılar ve özelleştirilebilirlik, uygulamalarınızın güvenliğini en üygün şekilde sağlar. İhtiyacınıza uygun bir yapı seçerek, Laravel'in güvenlik mekanizmalarından tam anlamıyla faydalanabilirsiniz.

« Geri dön | Yorum gönder | Yukarı ↑
» Hakkımda
A
Atilla Mutlu
Yazılım Geliştirici

Devamını oku »
» Son Yazılar
› Git’te “master” mı “main” mi? Bir kelimenin ardındaki hikâye
› Laravel Model Controller
› PostgreSQL Mini‑Kılavuz
› ReactJS Rehberi
› Spatie Laravel Paketleri
» İstatistik
Ziyaretçi Sayısı
036373
Toplam yazı: 63
PHPpowered SQLiteinside Firefoxile daha iyi CSStables ♥
Bu site en iyi 1024x768 çözünürlükte görüntülenir.
Copyright © 2006-2026
Anasayfa | Hakkımda | İletişim | Yukarı ↑
Bu sayfa 0,016 saniyede oluşturuldu.