Laravel’de HTTP Basic Auth ile veritabanı olmadan bile saniyeler içinde admin paneli, test sayfası veya küçük API uçlarını şifre ile korumanın pratik yollarını bu yazımızda inceledik
Web projelerinde bazen kullanıcıyı uzun oturum süreçlerine (login formu, cookie, token vs.) sokmadan hemen bir şifre koruması eklemek gerekir. Yayına çıkmamış bir admin paneli, sadece ekip içi erişilecek bir test sayfası veya basit bir API ucu gibi durumlarda HTTP Basic Authentication Laravel’de saniyeler içinde devreye alınabilir.
İşte bu gibi senaryolarda HTTP Basic Authentication Laravel ile saniyeler içinde devreye alınabilir.
Bu yazıda Laravel’in dahili Basic Auth middleware’ini, custom (özelleştirilmiş) Basic Auth yazımını, ve güvenlik ipuçlarını adım adım göreceğiz.
Tabii burdaki örnek senaryolar için daha profesyonel bir yaklaşım Laravel Pennant 'ın kullanılması olacaktır.. Ama projelerde her zaman bu kadar kapsamlı yapılar kurmak gerekmez ya da anlık ihtiyaçlara cevap vermek adına bu basit yapı gayet iş görecektir..
Bu yazıda Laravel ile:
onceBasic,Şimdi kendi projenizde basit bir şifre korumasına ihtiyaç duyduğunuzda bu yöntemlerden birini rahatlıkla uygulayabilirsiniz.
HTTP Basic Auth, tarayıcının native olarak desteklediği basit bir kimlik doğrulama protokolüdür. Kullanıcı siteye erişmeye çalıştığında tarayıcı bir popup gösterir ve kullanıcı adı / şifre ister. Doğru bilgiler girildiğinde istek HTTP header’ında aşağıdaki gibi gönderilir:
Authorization: Basic base64(username:password)
Laravel bu header’ı okuyarak kullanıcıyı doğrular.
⚠️ Önemli: Basic Auth, bilgileri Base64 ile gönderir; yani şifre aslında şifrelenmemiştir. Mutlaka HTTPS kullanmak gerekir.
auth.basic Middleware’iLaravel, dahili auth.basic middleware’i ile Basic Auth’u tek satırda kullanmamızı sağlar.
Örneğin bir admin sayfasını korumak için:
routes/web.php
Route::get('/admin', function () {
return 'Admin paneline hoş geldiniz!';
})->middleware('auth.basic');
users tablosundaki email ve password alanlarına göre doğrulama yapar.email kullanılır, şifre ise bcrypt hash’inden kontrol edilir.Eğer email yerine username ile doğrulama yapmak isterseniz:
Route::get('/admin', function () {
return 'Username ile doğrulama yapılıyor';
})->middleware('auth.basic:username');
Burada username, users tablosundaki kolon adıdır.
onceBasic()Eğer session (cookie) tutmak istemiyorsanız, örneğin basit bir API endpoint’i korumak için:
use Illuminate\Support\Facades\Auth;
Route::get('/api/secret', function () {
return Auth::onceBasic() ?: response()->json(['data' => 'Gizli veri']);
});
onceBasic() her istek için doğrulama ister.Bazen veritabanı olmadan tek bir sabit kullanıcı adı/şifre ile koruma yapmak isteyebilirsiniz. Laravel’in default middleware’i buna izin vermez. Bu durumda kendi middleware’imizi yazabiliriz.
php artisan make:middleware BasicAuthenticationMiddleware
app/Http/Middleware/BasicAuthenticationMiddleware.php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class BasicAuthenticationMiddleware
{
public function handle(Request $request, Closure $next)
{
// Gerçekte kullanıcı adı ve şifreyi .env dosyasından çekmek daha güvenlidir.
// $username = env('BASIC_USER', 'demo');
// $password = env('BASIC_PASS', 'demo123');
// Bu örnekte basitlik için sabit değer kullandım.
$username = 'AlixcaN';
$password = 'SüperGizliŞifrem';
if ($request->getUser() !== $username || $request->getPassword() !== $password) {
return response('Unauthorized', 401, ['WWW-Authenticate' => 'Basic']);
}
return $next($request);
}
}
routes/web.php
use App\Http\Middleware\BasicAuthenticationMiddleware;
Route::get('/secret', function () {
return 'Bu sayfa sabit Basic Auth ile korundu';
})->middleware(BasicAuthenticationMiddleware::class);
...
BASIC_USER="Alixcan"
BASIC_PASS="SüperGizliŞifrem"
...
✅ Avantajlar:
.env dosyasında tutmak güvenlik ve esneklik sağlar.HTTPS Kullanımı Basic Auth kullanıcı bilgilerini Base64 ile gönderir → sadece HTTPS üzerinden çalıştırın.
Rate Limiting
Brute force saldırılarına karşı Laravel’in throttle middleware’ini ekleyin:
Route::middleware(['throttle:10,1', BasicAuthenticationMiddleware::class])
->get('/secret', fn() => 'Gizli');
Log Temizliği Bazı serverlar header’ları loglayabilir. Sunucu log ayarlarınızı kontrol edin.
Environment Değerleri
Kullanıcı adı ve şifreyi .env dosyasından alın; kod içine sabitlemeyin.
➡️ Uzun vadeli ve çok kullanıcılı sistemlerde Laravel Sanctum / Passport gibi token tabanlı çözümler tercih edilmelidir.
Laravel, hem dahili auth.basic middleware’i hem de özelleştirilebilir middleware yazma imkanı sayesinde
hızlı ve basit şifre koruması eklemek için güçlü seçenekler sunar.
.env + custom middleware en pratik çözümdür.auth.basic middleware’i yeterlidir.💡 İleri Okuma:
Bu içerikte yer alan bazı başlık ve örneklerin şekillenmesinde OpenAI ChatGPT’den yararlandım. Nihai düzenlemeler ve tüm içerik tarafımdan revize edilmiştir.
Fullstack Web Developper & Laravel Dev & SysAdmin
Bu paket, kullanılan SQL sorgularını izleyip önbellekte anahtar olarak kullanabilme yeteneğine sahiptir. Bu sayede, sorguya özel önbellekleme oldukça kolay hale gelir ve ORM kullanımınızdan bağımsız çalışır.
Laravel’de HTTP Basic Auth ile veritabanı olmadan bile saniyeler içinde admin paneli, test sayfası veya küçük API uçlarını şifre ile korumanın pratik yollarını bu yazımızda inceledik
Laravel projelerinde SQLite veritabanınızı otomatik yedeklemek için Artisan komutu, günlük zamanlama ve opsiyonel bildirim entegrasyonu ile pratik bir çözüm örneği.
Tailwindcss ve Laravel Blade Componentları ile SAP Tablo ve Ana veri Ekran Tasarımları
Bir array yapısı içinde anahtar ile değerin yerini değiştirmek için kulanabileceğiniz çok basit bir yapı collection flip() metodu.
Bu paket, kullanılan SQL sorgularını izleyip önbellekte anahtar olarak kullanabilme yeteneğine sahiptir. Bu sayede, sorguya özel önbellekleme oldukça kolay hale gelir ve ORM kullanımınızdan bağımsız çalışır.
Laravel projenizi yayına almak için Nginx kurulumu, PHP sürüm ayarları veya SSL yapılandırmasıyla uğraşmak zorunda değilsiniz. LaraSail, tüm bu teknik süreçleri otomatikleştirerek deploy işlemini oldukça basit hale getirir.
Kurumsal işletmeler için geliştirilen SAP entegre mesai ve izin takip sistemi, hem üretim hem idari alanlarda süreçleri dijitalleştiriyor. Anlık raporlama, mobil uyumlu kullanım, resmi belge ve imza yönetimi, gelişmiş filtreleme ve PKDS entegrasyonu ile insan kaynakları yönetimini hızlandırıyor ve şeffaflaştırıyor.
Talaşlı imalat süreçlerinde kesici elmasların hangi personel, hangi departman ve hangi proje için ne kadar tüketildiğini anlık olarak izlemek artık mümkün. SAP Business One üzerine geliştirdiğimiz Elmas Analiz ekranı; stok optimizasyonu, maliyet kontrolü ve proje bazlı raporlama ihtiyaçlarını tek bir ekranda birleştirerek üretim sahasında şeffaflık ve hız sağlıyor.
SAP Business One üzerinde geliştirdiğimiz onaylı tedarikçi yönetim sistemi; kalite, teslimat, fiyat ve miktar kriterlerini ağırlıklı skor kartı ile izleyerek ISO 9001:2015’in 8.4 maddesine tam uyum sağlıyor. Bu yazıda tedarikçi performansını puanlayan ekranlar, raporlama araçları ve denetime hazır süreçlerin nasıl kurulduğunu detaylı olarak inceleyebilirsiniz.