Laravel Auth'u Farklı Bir Dosyada Kullanmak/Erişmek
Merhabalar;
Laravel'de public / assets klasörlerinin içerisindeki .php dosyalarında bir Authentication yapmam gerekiyor. Login işlemlerini Fortify ile otomatik yapıyorum. Backend'te kullandığımız "Auth()" kodunu bahsettiğim dosyalarda nasıl kullanabiliriz? Nasıl erişebiliriz yani? if(auth()....) durumuna göre işlem yapmam gerekiyor public dosyalarda.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
@dinar Ckfinder plugini kullanıyorum; içerisinde config.php dosyası var. Burada auth kontrolü yaparak, dışarıdan dosya yüklenebilmesinin önüne geçeceğim. saf php kullanırken standart $_SESSION ile yönetici girişi varsa true, yoksa false döndürerek bu işlemi zaten sağlıyorudum. Ancak laravel kısmında bunu nasıl sağlarım bilmiyorum. Mantıklı veya Mantıksızdır bilemem ancak bu şekilde bir kontrol sağlamam lazım dediğim gibi. Yoksa dışarıdan dosya upload işlemleri sağlanabiliyor.
çok spesifik bir olaya girmediğiniz sürece public klasöründeki dosyalara php kodu yazılmaz spesifik olarak bir şey yapmanız gerekiyorsa eğer,
örneğin bir resim dosyasını sadece üyelere göstereceksiniz
o zaman yine bir route yazıp gerekli kontrolleri route üzerinden yapar daha sonra routeda sonuç olarak o resim dosyasını dönersiniz
Route::get('/resim', function () {
if (!auth()->check()) //kullanıcı giriş yapmamışsa 401 dön
abort(401);
$file = public_path('images/ornekserfika.jpg'); //dosyayı al
if (!file_exists($file)) //dosya yoksa 404 dön
abort(404);
$resim = file_get_contents($file); //dosyanın kaynağını al
return response($resim)->header('Content-type', 'image/jpg'); //response u resim olarak dön
});
buna benzer şekilde örneklenebilir.