Rengaver
Laravel Session ile Kullanıcı Girişi Yapımı - Baskı Önizleme

+- Rengaver (https://rengaver.com)
+-- Forum: Yazılım Dersleri (https://rengaver.com/forum-yazilim-dersleri)
+--- Forum: PHP (https://rengaver.com/forum-php)
+--- Konu Başlığı: Laravel Session ile Kullanıcı Girişi Yapımı (/konu-laravel-session-ile-kullanici-girisi-yapimi)



Laravel Session ile Kullanıcı Girişi Yapımı - seraph - 03-23-2021

Bu projede veritabanı kullanılacağı için .env dosyanıza gidip ilgili kısımlara veritabanınızın bilgilerini doldurmalısınız. Bu işlemi yaptıktan sonra öncelikle bir kullanıcı tablosu oluşturmamız gerekiyor. Bunun için bize bir migration ve veritabanıyla işlem yapabilmek için de bir model lazım. Aşağıdaki komutla ikisini birden oluşturabiliriz.
“php artisan make:model Kullanici -m“
Gerekli dosyaları oluşturduktan sonra “/database/migrations” dizinine gidip oluşan migration dosyasını açalım ve kolonları aşağıdaki gibi düzenleyelim.
[Resim: 1616528082_0xhuUpxLaMiA3tZ.png]
Kullanıcı adı ve şifre kolonlarımızı oluşturduk. Bu dosyanın veritabanına işlenmesi için aşağıdaki komutu çalıştıralım
“php artisan migrate”
Şimdi de basit bir giriş formu hazırlayalım. Bunun için önce “resources/views” dizini altına bu formun bulunacağı bir view oluşturmalıyız. View dosyalarının uzantısı .blade.php olmalıdır. Bizim giriş viewımız da login.blade.php olsun. Bu dosyayı oluşturup içine de aşağıdaki gibi bir giriş formu verelim. Action kısmını şimdilik boş bırakıyoruz.
[Resim: 1616528107_0aNK7lGOf0mjTNR.png]

Formumuzdaki “@csrf” kodu bir blade direktifi. Laravelin csrf açığına karşı aldığı bir önlem. Bu kodu yazmadan formla data gönderemeyiz.
Ardından işlemlerimizi yapacağımız bir controller ve kullanıcıya form sayfasını gösterebilmek için bir route oluşturalım.
“php artisan make:controller kullaniciController”
Bu controllerda Session Sınıfını ve oluşturduğumuz Model sınıfını kullanmamız gerekecek.
[Resim: 1616528129_PROEyNQVNHQz4ul.png]
Giriş viewımızı göstermek için bir method yazıyoruz.
[Resim: 1616528154_QD2OGLWgorr9htO.png]
routes/web.php dosyasına gelip aşağıdaki gibi routeumuzu oluşturalım fakat bundan önce web.phpye controllerımızı tanıtmamız gerekiyor. Ardından routeumuzu tanımlayabiliriz.
[Resim: 1616528178_0MVQIoxSEnDzFlv.png]
Route umuza ‘giris’ ismini veriyoruz.
[Resim: 1616528200_ZEGrwtjRIL7ayVz.png]
Bu routeu da oluşturduktan sonra /login urline giderek formu görüntüleyebiliriz.
Artık giriş bilgilerini alıp işlemeye hazırız. Veritabanımızdaki kullanıcı tablosuna gidip elimizle bir kullanıcı ekleyelim. Kullanıcı adı admin, şifresi 123456 olsun.
[Resim: 1616528218_b8BeUXRLREA1g2G.png]
Giriş yapıldıktan sonra kullanıcıya bir ekran göstereceğiz. Bu ekranda “Hoşgeldiniz, Kullanıcı Adı“ şeklinde bir yazı ve bir çıkış butonu olacak olacak. Bunun için de veritabanından kullanıcı adını çekip bu arayüzün olduğu viewa göndermemiz gerekiyor.
[Resim: 1616528248_MehE98Oy6hLxLoU.png]
Bu methodda öncelikle kullanıcı giriş yapmış mı diye kontrol ediyoruz. Giriş yapılmamışsa giriş sayfasına yönlendiriyoruz ki giriş yapmayan biri panele giremesin. Giriş yapılmışsa kullanıcı adını alıp panel viewına gönderiyoruz.

Bir de çıkış için route ve controllerda bir method oluşturalım.
Route umuza daha sonra erişebilmek için ‘cikis’ ismini veriyoruz.
[Resim: 1616528288_uk4yfpcLpME197l.png]
[Resim: 1616528329_Mq2ST0XnPDyvyLj.png]
Yine /resources/views dizinin altına “panel.blade.php” dosyamızı oluşturalım ve veriyi ekrana basalım. Sonra da bu viewı kullanıcıya göstermek için bir route oluşturalım.
[Resim: 1616528348_UO8AfkbAEzTvzYL.png]
Route umuza ‘panel’ ismini veriyoruz.
[Resim: 1616528366_2a2IO8pyg4uL9eY.png]
Şimdi sıra giriş formundan gelen verileri alıp doğrulamakta. Bunun için de aşağıdaki gibi kullaniciGirisi adında bir method ve bir route oluşturuyoruz.
[Resim: 1616528401_eFo3Kot89mKj1Sx.png]
Burayı açıklamam gerekirse, kullanıcı adı ve şifre verilerini alıp değişkene attık. Daha sonra, gelen kullanıcı adıyla eşleşen bir kullanıcı var mı diye kontrol ediyoruz.Eğer yoksa hata mesajı dönüyoruz.Varsa da şifre kontrolü yapıyoruz. Kullanıcının bize gönderdiği şifre ile veri tabanındaki kullanıcımızın şifresi eşleşiyorsa Session oluşturup kullanıcıyı panel route una yönlendiriyoruz.

Şimdi de bir route oluşturalım.
[Resim: 1616528437_6N4N3u2HiQeCQuw.png]
Giriş formumuzun action kısmına da {{route(‘kullaniciGirisi’)}} veriyoruz. Form elementinin ardından da



@if(isset($durum))

            {{$mesaj}}

@endif



Kodunu yazıyoruz ki hata mesajımız görünsün.
Artık giriş sistemimiz neredeyse hazır.Son olarak, giriş yapmış bir kullanıcı giriş sayfasına erişmeye çalıştığında direkt olarak panel sayfasına yönlendirme yapmamız gerekiyor. Bunun için de girisSayfasi methodumuzda aşağıdaki şekilde bir kontrol gerçekleştireceğiz.
[Resim: 1616528457_rxhaXYv4cOOUs5h.png]
Artık sistemimiz hazır.