Laravel’de API Kullanımı ve Token Bazlı Authentication

Web Doktoru - Laravel’de API Kullanımı ve Token Bazlı Authentication

Laravel’de API Kullanımı ve Token Bazlı Authentication

İçindekiler

Laravel’de API Kullanımı ve Token Bazlı Kimlik Doğrulama: Laravel Sanctum ile Güvenli API Geliştirme

Laravel, modern web uygulamaları ve mobil uygulamalar için güçlü bir API geliştirme ortamı sunar. Özellikle token bazlı kimlik doğrulama (authentication), kullanıcıların güvenli bir şekilde API’lere erişmesini sağlar. Laravel, bu ihtiyaçları karşılamak için Laravel Sanctum ve Laravel Passport gibi araçlar sunar. Bu makalede, Laravel Sanctum kullanarak token bazlı kimlik doğrulama işlemlerini nasıl gerçekleştireceğinizi adım adım öğreneceksiniz.


1️⃣ API Nedir ve Neden Kullanılır?

API (Application Programming Interface), farklı uygulamaların birbiriyle iletişim kurmasını sağlayan bir arayüzdür. API’ler, özellikle mobil uygulamalar, mikroservisler veya farklı platformlar arasında veri alışverişi yapmak için kullanılır. Laravel ile API geliştirmek, bu tür senaryolarda oldukça kullanışlıdır.

Token Bazlı Kimlik Doğrulama

Token bazlı kimlik doğrulama, kullanıcı adı ve şifre gibi geleneksel yöntemler yerine, API token’ları kullanarak güvenli bir doğrulama süreci sağlar. Bu yöntem, özellikle stateless (durumsuz) uygulamalarda tercih edilir ve kullanıcı oturumlarını yönetmek için idealdir.


2️⃣ Laravel Sanctum Nedir?

Laravel Sanctum, API kimlik doğrulaması için hafif ve kolay bir çözüm sunar. Sanctum, özellikle SPA (Single Page Application) ve mobil uygulamalar için token bazlı kimlik doğrulama sağlar. Sanctum’un avantajları şunlardır:

  • Hafif ve Hızlı: Sanctum, minimal bir yapı sunar ve performans kaybı yaşatmaz.
  • Token Yönetimi: Kullanıcılar için API token’ları oluşturur ve yönetir.
  • Güvenlik: Token’ların güvenli bir şekilde saklanmasını ve kullanılmasını sağlar.

3️⃣ Laravel Sanctum Kurulumu

Laravel Sanctum’u projenize eklemek oldukça kolaydır. İşte adım adım kurulum süreci:

Adım 1: Sanctum Paketini Yükleme

Sanctum’u projenize eklemek için aşağıdaki komutu çalıştırın:

composer require laravel/sanctum

Adım 2: Sanctum Konfigürasyon Dosyasını Yayınlama

Sanctum’un konfigürasyon dosyasını yayınlamak için:

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

Bu komut, config/sanctum.php dosyasını oluşturur.

Adım 3: Migration Dosyalarını Çalıştırma

Sanctum’un gerekli tablolarını oluşturmak için migration’ları çalıştırın:

php artisan migrate

Bu komut, personal_access_tokens tablosunu oluşturur. Bu tablo, kullanıcıların API token’larını saklar.

Adım 4: User Modeline HasApiTokens Trait’ini Ekleme

User modeline HasApiTokens trait’ini ekleyerek, kullanıcıların API token’ları oluşturmasını sağlayabilirsiniz:

use Laravel\Sanctum\HasApiTokens;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;
}

Adım 5: Middleware Ayarları

Sanctum’u API isteklerinde kullanabilmek için api middleware grubuna ekleyin. app/Http/Kernel.php dosyasına aşağıdaki satırı ekleyin:

use Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful;

protected $middlewareGroups = [
    'api' => [
        EnsureFrontendRequestsAreStateful::class,
        'throttle:api',
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],
];

4️⃣ Kullanıcı Kayıt ve Giriş API’leri

Laravel Sanctum ile kullanıcı kaydı, giriş ve çıkış işlemlerini gerçekleştirmek için bir AuthController oluşturabilirsiniz. Bu controller, kullanıcı kaydı, giriş ve çıkış işlemlerini yönetir.

Kullanıcı Kaydı

Kullanıcı kaydı işlemi için, kullanıcı bilgilerini alır ve bir API token’ı oluşturur. Bu token, kullanıcının API’ye erişimini sağlar.

Kullanıcı Girişi

Kullanıcı girişi işlemi, kullanıcının e-posta ve şifresini doğrular ve bir API token’ı döndürür.

Kullanıcı Çıkışı

Kullanıcı çıkışı işlemi, kullanıcının token’ını siler ve oturumu sonlandırır.


5️⃣ API Route’larını Tanımlama

API route’larını tanımlamak için routes/api.php dosyasını kullanabilirsiniz. Örneğin, kullanıcı kaydı, giriş ve çıkış işlemleri için aşağıdaki route’ları tanımlayabilirsiniz:

use App\Http\Controllers\AuthController;

Route::post('/register', [AuthController::class, 'register']);
Route::post('/login', [AuthController::class, 'login']);

Route::middleware('auth:sanctum')->group(function () {
    Route::post('/logout', [AuthController::class, 'logout']);
    Route::get('/user', function (Request $request) {
        return $request->user();
    });
});

Bu route’lar, kullanıcı kaydı, giriş, çıkış ve kullanıcı bilgilerini döndürme işlemlerini gerçekleştirir.


6️⃣ API Testi Yapma

API’yi test etmek için Postman veya cURL gibi araçlar kullanabilirsiniz. Örneğin, kullanıcı kaydı ve giriş işlemlerini test etmek için aşağıdaki cURL komutlarını kullanabilirsiniz:

Kullanıcı Kaydı İçin:

curl -X POST http://127.0.0.1:8000/api/register \
-H "Content-Type: application/json" \
-d '{"name": "Ali", "email": "[email protected]", "password": "password"}'

Kullanıcı Girişi İçin:

curl -X POST http://127.0.0.1:8000/api/login \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]", "password": "password"}'

Token ile Korunan Sayfaya Erişim İçin:

curl -X GET http://127.0.0.1:8000/api/user \
-H "Authorization: Bearer TOKEN_BURAYA_GELECEK"

Çıkış Yapmak İçin:

curl -X POST http://127.0.0.1:8000/api/logout \
-H "Authorization: Bearer TOKEN_BURAYA_GELECEK"

7️⃣ Token Süresi ve Güvenlik Ayarları

Sanctum’un token’ları varsayılan olarak süresizdir. Ancak, token süresini belirlemek için config/sanctum.php dosyasında aşağıdaki ayarı yapabilirsiniz:

'expiration' => 60, // 60 dakika sonra token süresi dolacak

Önerilen Güvenlik Önlemleri:

  • Rate Limiting: API isteklerine sınırlama getirin.
  • HTTPS: API’nizi HTTPS üzerinden kullanın.
  • CORS Ayarları: CORS (Cross-Origin Resource Sharing) ayarlarını doğru yapılandırın.

8️⃣ Sonuç

Laravel Sanctum, token bazlı kimlik doğrulama işlemleri için hafif ve kullanışlı bir çözüm sunar. Bu makalede, Laravel Sanctum ile kullanıcı kaydı, giriş ve çıkış işlemlerini nasıl gerçekleştireceğinizi öğrendiniz. Ayrıca, API’nizi nasıl test edeceğinizi ve token güvenliği için alınabilecek önlemleri incelediniz.

Eğer Laravel ile API geliştiriyorsanız, Sanctum’u kullanarak güvenli ve ölçeklenebilir bir kimlik doğrulama sistemi oluşturabilirsiniz. 

Picture of Web Doktoru
Web Doktoru
Matematikçi, Adli Bilişim Uzmanı, Bil. Yük. Müh. Full Stack Developer
İlginizi Çekebilir
Web Doktoru - Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler

Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler

Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler Laravel, modern web uygulamalarında gerçek zamanlı bildirimler oluşturmak için güçlü araçlar sunar. WebSockets, Pusher, Laravel Echo ve Broadcasting gibi teknolojiler

Web Doktoru - Laravel’de Mail Gönderme ve Bildirimler 📩

Laravel’de Mail Gönderme ve Bildirimler 📩

Laravel’de Mail Gönderme ve Bildirimler Laravel, modern web uygulamaları geliştirirken e-posta gönderimi ve bildirim sistemleri gibi ihtiyaçları kolayca karşılamak için güçlü araçlar sunar. Bu yazıda,

Whatsapp ile mesaj göndermek için tıklayın

Telefon ile sadece 09:00 - 18:00 saatleri arası ulaşabilirsiniz.