Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Laravel Sanctum ve Passport: Doğru API Yetkilendirmesini Seçmek
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Laravel Sanctum ve Passport: Doğru API Yetkilendirmesini Seçmek

Yazılım

Laravel Sanctum ve Passport: Doğru API Yetkilendirmesini Seçmek

teknomers
Son güncelleme: 23 Temmuz 2026 19:06
teknomers
Paylaş
Paylaş

Laravel ile bir API geliştirirken ilk hafta içinde karşılaşacağınız önemli bir karar: Sanctum mı yoksa Passport mu? Bu seçim, görünüşte küçük bir paket tercihine benziyor ama daha büyük bir soruyu da beraberinde getiriyor—bu API’yi kimler tüketiyor ve onlarla ne kadar güven ilişkisi kurmanız gerekiyor? Yanlış bir seçim yaparsanız, kimsenin istemediği bir OAuth2 sunucusu kurmakla haftalar harcayabilir veya yol haritanızda vaat ettiğiniz üçüncü parti entegrasyonlarını desteklemeyen bir token sistemi ortaya çıkarabilirsiniz. Bu yazıda, broşür özetinden kaçınıp doğrudan üretim kararına odaklanıyoruz: Her paketin ne için kullanıldığını, ekiplerin bu seçimi neden yanlış değerlendirdiğini ve yanlış seçim durumunda nasıl geçiş yapacağınızı ele alıyoruz.


Sanctum Nedir?

Laravel Sanctum, iki senaryo için hafif bir kimlik doğrulama paketidir: “birinci parti” SPA’lar veya mobil uygulamalar – yani hem frontend hem de backend’i kontrol ediyorsanız – ve makine-arası kullanım için basit API tokeni düzenleme. Sanctum OAuth2 uygulamaz: ne yetkilendirme sunucusu, ne onay ekranı, ne de istemci kaydı yoktur. Size iki mekanizma sunar: aynı üst düzey alan adı için cookie tabanlı oturum kimlik doğrulaması ve hashed-at-rest tokenler için personal_access_tokens tablosu.

Bu sadelik tam da mesele. Sanctum, Passport’un çoğu “kendi frontend’imiz kendi API’mizle iletişim kuruyor” durumu için gereksiz olduğu için var. app.yourcompany.com adresinden bir React veya Vue SPA geliştiriyorsanız ve api.yourcompany.com ile iletişim kuruyorsanız veya sadece şirketinizin gönderdiği bir mobil uygulama geliştiriyorsanız, Sanctum size süresiz bir süreç olmadan çözüme ulaştırır.


Passport Nedir?

Laravel Passport, League OAuth2 Server paketine dayalı tam bir OAuth2 sunucusu uygulamasıdır: istemci kaydı, yetkilendirme kodları, yenileme tokenleri, kapsamlar ve token iptali, kendi şemasına dayanır. Passport’un var olma nedeni, kontrol etmediğiniz uygulamaların kullanıcı adına API’nize erişimini sağlamaktır. Bu, “kendi SPA’m giriş yapacak” sorunundan farklıdır. API’niz bir platform olduğunda, değil sadece kendi istemciniz için bir backend.


SPA Cookie Kimlik Doğrulaması ve API Tokenleri: Doğru Sanctum Modunu Seçme

Sanctum, iki kimlik doğrulama şeklini destekler ve yanlış olanı seçmek gerçek sorunlar yaratır. Cookie tabanlı SPA kimlik doğrulaması, SPA ve API’nin aynı üst düzey alan adını paylaştığı durumlar içindir. Laravel, giriş yaptıktan sonra şifrelenmiş, HttpOnly bir oturum cookie’si verir ve Sanctum’un EnsureFrontendRequestsAreStateful middleware’i, yapılandırılmış SPA alanları aracılığıyla isteklere oturum yerine token ile kimlik doğrulaması yapar—bu durum, token’in frontend JavaScript’inize dokunmadığı anlamına gelir, bu da XSS saldırı yüzeyini önemli ölçüde azaltır.

API tokenleri ise diğer her şey içindir: mobil uygulamalar, CLI araçları, sunucu-arası entegrasyonlar ve cookie alan adınızı paylaşmayan herhangi bir istemci. En yaygın hata, ekiplerin kendi birinci parti SPA’ları için gereksiz bir şekilde API tokenleri kullanmasıdır; bu daha fazla kod demektir, bir token’in tarayıcıda bir yerde yaşaması gerekir ve frontend ile backend aynı ise cookie tabanlı kimlik doğrulama yöntemine göre size bir avantaj sağlamaz.


Birinci Parti ve Üçüncü Parti Tüketiciler: Gerçek Karar Noktası

Özellik karşılaştırmalarını bir kenara bırakın ve kararınızı tek bir soruya indirgeyin: API’niz çağrıldığında, onu siz inşa edip dağıttığınız uygulamalar mı var, yoksa başkaları tarafından geliştirilenler mi? Sadece birinci parti uygulamalar varsa, Sanctum neredeyse her zaman doğrudur — bu, gerçek projelerin çoğunu kapsar: bir şirketin kendi web uygulaması ve kendi iOS/Android uygulamaları, dahili bir admin paneli yerel API’ye hitap eden veya tek resmi istemcisi olan bir SaaS ürünü.

Üçüncü parti tüketicilerle karşılaşırsanız, Passport (veya eşdeğeri bir OAuth2 sunucusu) gereklidir. Bu, diğer firmaların entegre olduğu bir platform inşa ettiğinizde, bir kullanıcı adına hareket eden partner uygulamaların bulunduğu bir pazar yeri veya “Hesabınızı bağlayın” gibi gerçek, kararlı bir yol haritası özelliğine sahip her üründe kendini gösterir.


Kod: Sanctum SPA Kimlik Doğrulama Ayarı

// config/sanctum.php
'stateful' => explode(',', env(
    'SANCTUM_STATEFUL_DOMAINS',
    'localhost,localhost:3000,app.yourcompany.com'
)),
'guard' => ['web'],

// bootstrap/app.php (Laravel 11+)
->withMiddleware(function (Middleware $middleware) {
    $middleware->statefulApi();
})

// routes/api.php
Route::middleware('auth:sanctum')->group(function () {
    Route::get('/user', fn (Request $request) => $request->user());
});

SPA, CSRF korumasını etkinleştirmek üzere GET /sanctum/csrf-cookie isteğini gönderir; ardından giriş formunu withCredentials: true (Axios) veya credentials: 'include' (fetch) ile göndererek oturum cookie’sinin otomatik olarak gönderilmesini sağlar.


Kod: Sanctum API Token İhraç Etme

public function login(Request $request)
{
    $request->validate([
        'email' => 'required|email',
        'password' => 'required',
        'device_name' => 'required|string',
    ]);

    $user = User::where('email', $request->email)->first();

    if (! $user || ! Hash::check($request->password, $user->password)) {
        throw ValidationException::withMessages([=> []]);
    }

    $token = $user->createToken(
        $request->device_name,
        [,,]
    );

    return response()->json([=> $token->plainTextToken]);
}

Dikkat edilmesi gereken nokta, açık metin değerinin yalnızca oluşturma zamanında mevcut olduğudur—Sanctum veritabanında SHA-256 hash’ini saklar, bu nedenle bu yanıtı, istemcinin bunu yakalama şansı olarak değerlendirin.


Kod: Passport İstemci Kimlik Bilgileri İzni Ayarı

Kullanıcı müdahalesi olmadan bir partnerin arka ucunun kimlik doğrulaması yaptığı makine-arası entegrasyonlar için:

// AuthServiceProvider.php
use Laravel\Passport\Passport;

public function boot(): void
{
    Passport::tokensCan([
        => ,
        => ,
    ]);
}

// routes/api.php
Route::middleware([
    ,
    ,
])->get(, [ReportController::class, ]);

Partnerın sunucusu, bir tarayıcı yönlendirmesi olmaksızın doğrudan bir token talep eder ve Passport, bu istemciye ve belirlenen kapsam ayarına bağlı bir token verir; entegrasyon devre dışı bırakıldığında bunu bağımsız olarak iptal edebilirsiniz.


OAuth2 İzin Türleri ve Ne Zaman Gerekli Olduğu

Passport, standart OAuth2 izinlerinin tamamını destekler, ancak çoğu proje sadece bir veya iki tanesine ihtiyaç duyar. Yetkilendirme kodu izni, bir kullanıcının oturum açtığı ve açıkça onay verdiği üçüncü parti uygulamalar için standart akıştır; güvenli bir gizli anahtarı olamayan kamu istemcileri için PKCE varyantını kullanın. Şifre izni, güvenilir bir birinci parti istemcinin doğrudan bir token almak için bir kullanıcı adı ve parolayı değiştirmesi için bir öncül sunar; basitliği ile cezbetse de, istemcinin ham kimlik bilgilerini işlemesini gerektirir – bu, OAuth2’nin temel güvenlik amacını ihlal eder. Eğer bunu kullanma gereği hissediyorsanız, muhtemelen Sanctum’a yönelmelisiniz. İstemci kimlik bilgileri izni, kullanıcının bulunmadığı makine-arası kimlik doğrulama içindir; eğer projeniz sadece bu izni gerektiriyorsa, Passport’a ulaşmadan önce Sanctum’un API tokenlerini düşünün; çünkü bunlar aynı “hizmet hesabı” amacını çok daha az kurulum ile sunar.


Sanctum ve Passport Arasında Geçiş

Her iki paket de kimlik doğrulanmış bir User modelini sergiler ve tokenCan() tarzı kontrolleri destekler, dolayısıyla bu iki paket arasında geçiş yapmak, insanların beklentilerinden daha az kodu etkiler — sıkıntı, neredeyse tamamen kimlik doğrulama katmanındadır, iş mantığınızda değil. Sanctum’dan Passport’a geçiş genellikle Passport’u Sanctum ile birlikte kurmak, passport:install komutunu çalıştırmak, şifreleme anahtarlarını üretmek için ilk OAuth2 istemcilerinizi kaydetmek, mevcut Sanctum yeteneklerinizi yansıtan AuthServiceProvider‘da kapsam tanımlamak ve yeni yüzey için yetkilendirme kodu akışını oluşturmayı içerir. Passport’tan Sanctum’a geçmek ise hangi OAuth2 istemcilerinin gerçekten birinci parti, hangilerinin harici olduğunu denetlemeyi, yetkilendirme kodu akışını Sanctum’un doğrudan token ihraç etmesiyle değiştirmeyi ve Passport’un oauth_* tablolarını, rotalarını ve paketi kaldırmayı gerektirir.


Karar Çerçevesi

Tartışmayı üç soruyla keskinleştirin; bunları gerçek yol haritanız hakkında dürüstçe yanıtlayın: Sizden almayı planladığınız bir uygulama kullanıcı onayına ihtiyaç duyacak mı? Her istemci—web, mobil, CLI—kendi ekibiniz tarafından mı gönderiliyor? Harici geliştiriciler için bir onay ekranına, istemci kaydına veya iptal arayüzüne ihtiyaç var mı? En sık gördüğümüz desen, ekiplerin “OAuth2” terimi doğru cevapmış gibi düşünerek ilk günden Passport’a yönelmesi, ardından birinci parti bir müşteri için yetkilendirme sunucusu sağlamakla haftalar harcamasıdır.

Sanctum ve Passport, aynı özelliğin rakip uygulamaları değildir—farklı güven problemlerini çözerler. Sanctum, her istemciyi güvenilir kabul eder çünkü onu siz inşa ettiniz; Passport, böyle bir güven ilişkisi kurmanın mümkün olmadığı anlar için vardır. Çoğu Laravel API’si, iddialı olanlar da dahil olmak üzere, yalnızca birinci parti uygulamalar içerir ve bu gerçek olduğu sürece Sanctum ile kalmalısınız.

Kaynak: Orijinal Makale

Contents
  • Sanctum Nedir?
  • Passport Nedir?
  • SPA Cookie Kimlik Doğrulaması ve API Tokenleri: Doğru Sanctum Modunu Seçme
  • Birinci Parti ve Üçüncü Parti Tüketiciler: Gerçek Karar Noktası
  • Kod: Sanctum SPA Kimlik Doğrulama Ayarı
  • Kod: Sanctum API Token İhraç Etme
  • Kod: Passport İstemci Kimlik Bilgileri İzni Ayarı
  • OAuth2 İzin Türleri ve Ne Zaman Gerekli Olduğu
  • Sanctum ve Passport Arasında Geçiş
  • Karar Çerçevesi
Laravel 12 + React 18 + TypeScript ile Üretim Seviyesinde Çok Kiracılı SaaS Başlangıç Kiti Nasıl Oluşturdum?
Eylem Sınıfları: O basit yapı, o dev hizmetin yerini alıyor.
Açık Kaynak Bir Telebirr SDK’sı Oluşturdum: Günlerce İmza Hatalarıyla Mücadele Ettikten Sonra
20’den Fazla Takımın Laravel İçin LaraCopilot’u Neden Benimsemesi
Bir Milyar Satıra Ölçeklenme: Laravel’de PostgreSQL Bölümlendirme
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Google, Artık Hesabınıza Selfie Videosu ile Giriş Yaptıracak
Sonraki Makale Microsoft, Xbox Insiders için Ücretsiz Reklam Destekli Bulut Oyunları Test Ediyor

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Yeni Oyuncular İçin İdeal Başlangıç: Path of Exile’deki Beceriler Yenilendi
Oyun
Tesla’nın Robotaksileri Geri Sayımda
Genel
Meta’dan yeni AI reklam serisi: İnsan yokoluşuna dair şarkı ile
Yapay Zeka
Yapay Zeka Bellek Krizi Araba Fiyatlarını Artırıyor, GM Uyarıyor
Donanım
EA’nın Suudi Arabistan’a Girişi Önemli Bir Engel Aşıldı
Oyun
Kritik Uyarı: Notepad++ Eklentileriyle Gizli Zararlı Yazılım Yükleniyor
Siber Güvenlik
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?