15 May 2017
Laravel Auth Kullanımı ve Özelleştirilmesi
  • 2877 Okuma
  • 1 Yorum
  • 23 Beğeni

Laravel Auth Kullanımı ve Özelleştirilmesi

Laravel Framefork'ü diğerlerinden ayıran özelliklerinden biri de hemen hemen bütün web siteleri için olmazsa olmaz olan kullanıcı girişi, kullanıcı kaydı, şifremi unuttum ve beni hatırla işlemleri için kimlik doğrulama (authentication) sistemi sunmasıdır. Bu makalemde bu sistemin nasıl aktif hale getirildiğini anlatacağım.


Daha önce laravel hakkında hiç bilgisi olmayanlar, laravel hakkında giriş seviyesinde bilgi almak için buradan faydalanabilirler. Ayrıca, Laravel kurulumu için buradan faydalanabilirler.


Laravel'in kimlik doğrulama sisteminin aktif hale getirilmesi ve kullanıma hazır hale getirilmesi oldukça basittir. Kimlik doğrulama sisteminin aktif hale getirilmesi için aşağıdaki komutları çalıştırmanız yeterlidir.


php artisan make:auth
php artisan migrate


Bu komutla beraber, laravel kimlik doğrulama sitemi için gerekli olan route, view ve kullanıcılar için veritabanını oluşturmaktadır. Oluşturulan view'ler "resources/views/auth" klasörünün altında bulunmaktadır. Bu komutla beraber ayrıca, "resources/views/layouts/" klasörü de oluşturulmaktadır. Bu klasör içerisinde uygulama için temel layout oluşturulmaktadır.


Laravel Kimlik Doğrulama Sistemini Özelleştirme


Kullanıcı doğrulama sisteminde, eğer kullanıcı başarılı bir şekilde kimliğini doğruladıysa "/home" sayfasına yönlendirilmektedir. Sizde kimliğini doğrulayan kullanıcıları "profil" sayfasına yönlendirmek isteyebilirsiniz. Bunun için  "LoginController" ve "RegisterController" dosyalarında bulunan "$redirectedTo" ifadesini aşağıdaki şekilde değiştirebilirsiniz.


protected $redirectedTo = '/profil';


Ya da aşağıdaki şekilde bir fonksiyon tanımlaması yapabilirsiniz.


protected function redirectTo() {
    return '/profil';
}


Laravel Kimlik Doğrulama sistemi, varsayılan olarak eposta adresini kullanmaktadır. Eğer oturum açma işleminde kullanıcı adını kullanmak istiyorsanız. "LoginController" dosyası içerisinde aşağıdaki şekilde bir fonksiyon oluşturarak bu işlemi yapabilirsiniz.


 public function username() {
    return 'username';
}


Kullanıcının yetkili olup olmadığının kontrolü için aşağıdaki if yapısını kullanabilirsiniz.


if (Auth::check()) {
    // Kullanıcı yetkili
}


Web sitenizde bulunan bazı sayfalara sadece yetkili kullanıcıların erişmesini istiyorsanız, bu işlemi route tanımlama esnasında "middleware" kullanımı ile yapabilirsiniz. Profil sayfasına sadece yetkili kullanıcıların erişmesi için aşağıdaki route tanımlamasını kullanabilirsiniz.


Route::get('profil', function () {
    // Sadece yetkili kullanıcılar bu alana erişebilir
})->middleware('auth');


Yetki kontrolü route içerisinde yapılabildiği gibi controller içerisinde de yapılabilmektedir. Profil sayfasına erişimi controller içerisinde yapmak için, __contruct fonksiyonu oluşturmamız gerekmektedir. Bunun için aşağıdaki contruct metodunu kullanabilirsiniz.


public function __construct()
{
    $this->middleware('auth');
}


Bu fonksiyonu oluşturduğunuz her controller'da yetki kontrolü yapılır.


Sonuç


Web sitelerinde kimlik doğrulama olmazsa olmazlar arasındadır. Laravel Framework makalede bahsedildiği gibi, kimlik doğrulama için sistem sunmaktadır ve bu sistem kolay şekilde aktif hale getirilip, kullanılabilmektedir. Ayrıca bu sistemin istenildiği şekilde özelleştirilmesine olanak sağlamaktadır. Bu makalemde laravel'in kimlik doğrulama sisteminin nasıl aktif hale getirildiği ve ihtiyaca göre nasıl özelleştirilebildiğinden bahsettim. Daha ayrıntılı bilgi almak isteyenler Laravel'in resmi sitesinden de faydalabilirler.

Umarım faydalı olur. İyi çalışmalar.


Makaleyi faydalı buldunuz mu ?

Yazar


Legend Engineer

Legend Engineer

Mühendis (Bilgisayar)

Bilgisayar Mühendisliği mezunuyum. Bilgisayar alanında edindiğim bilgileri bu blog üzerinde paylaşıyorum. Beni takipte kalın.

Yorumlar


Ahmet Emin ŞİT | 14 Feb 2018

Hocam makalenizi sevdim. Admin ve user gibi parametrelere sahip bir web CMS tasarlamaya çalışmaktayım. Bu konu hakkında Yöneticinin sadece giriş yapabileceği Admin paneline route::group ve migration ayrıca Auth işlemleini de anlatabilir misiniz.



Legend Engineer

Legend Engineer | 14 Feb 2018

İlerleyen makalelerimde bu konulara değineceğim.


İlginizi Çekebilir

Makale Hakkındaki Düşünçelerinizi Paylaşın