Laravel'de uzun bir süredir passkey eklemek, üçüncü taraf paketlere başvurma veya WebAuthn törenlerini el ile oluşturma anlamına geliyordu. Ancak Nisan 2026'da Laravel, laravel/passkeys adlı bir paket çıkardı. Bu paket, Taylor Otwell tarafından yazılmış ve sunucu paketi, npm istemcisi ve Fortify entegrasyonu gibi üç parçadan oluşuyor. Bu parçalar, şifresiz kimlik doğrulama için birlikte çalışıyor.
Paketin İçeriği
Paket, üç bileşenden oluşuyor: sunucu tarafı paketi, npm istemcisi ve Fortify entegrasyonu. Sunucu tarafı paketi, WebAuthn törenlerini yönetiyor, passkeys veritabanı tablosunu yönetiyor ve oturum açma, onaylama ve kimlik bilgileri yönetimi için rotalar kaydediyor.
Npm istemcisi, tarayıcı tarafı tören koordinasyonunu yönetiyor ve React, Vue ve Svelte için ilk sınıf yardımcılar sunuyor.
Fortify entegrasyonu, paketi Fortify ile 함께 çalışmasını sağlıyor. Bu, Features::passkeys() metodunu kullanarak paketi etkinleştirmek ve config/fortify.php dosyasında passkeys bölümünü yapılandırmak anlamına geliyor.
Kurulum
Paketi kurmak için önce Composer paketini çekmelisiniz:
composer require laravel/passkeysArdından, göçleri çalıştırarak passkeys tablosunu oluşturmalısınız:
php artisan vendor:publish --tag=passkeys-migrations
php artisan migrateSon olarak, .env dosyasınıza bir gizli anahtar eklemelisiniz. Bu, kullanıcıların passkey ilişkilerini özel tutmanıza yardımcı olur:
PASSKEYS_USER_HANDLE_SECRET=your-random-secret-hereKullanıcı Modelini Yapılandırma
Kullanıcı modelinize PasskeyUser sözleşmesini ve PasskeyAuthenticatable özelliğini eklemelisiniz:
namespace AppModels;
use IlluminateFoundationAuthUser as Authenticatable;
use LaravelPasskeysContractsPasskeyUser;
use LaravelPasskeysPasskeyAuthenticatable;
class User extends Authenticatable implements PasskeyUser
{
use PasskeyAuthenticatable;
// Modelin geri kalanı...
}Bu özelliğin varsayımı, users tablosunun name ve email sütunlarına sahip olmasıdır. Authenticators, bu değerleri kayıt sırasında ve hesap seçimi sırasında gösterecektir.
Fortify Entegrasyonu
Eğer Laravel Fortify kullanıyorsanız, passkey'leri etkinleştirmek için sadece bir satır kod yeter:
use LaravelFortifyFeatures;
'features' => [
Features::registration(),
Features::resetPasswords(),
Features::emailVerification(),
Features::passkeys(), // Bu satırı ekleyin
],Fortify, otomatik olarak passkey rotalarını kaydeder ve sözleşmeleri bağlar. Sunucu tarafında başka bir değişiklik yoktur. Mevcut yetkilendirme kurulumuz, politikalar ve kapılar ile birlikte kalır.
Gelecekte, Laravel'in yerel passkey desteği, geliştiricilerin şifresiz kimlik doğrulama için daha basit ve güvenli bir yol sunmasını sağlayacaktır. Bu, özellikle kullanıcıların parolalarını hatırlamakta zorlandıkları veya parolaların güvenlik riskleri nedeniyle kullanılmadığı durumlarda faydalı olacaktır.
Yapay zeka özeti
Laravel, yerel passkey desteğiyle birlikte geliyor. Artık üçüncü taraf paketlere ihtiyaç duymadan passkey ekleyebilirsiniz. Şifresiz kimlik doğrulama için daha basit ve güvenli bir yol.