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.
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.
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.
Bilgisayar Mühendisliği mezunuyum. Bilgisayar alanında edindiğim bilgileri bu blog üzerinde paylaşıyorum. Beni takipte kalın.
Makale Hakkındaki Düşünçelerinizi Paylaşın