Yeni bir şifre onayı özelliği ile hassas eylemler gerçekleştirdiğinizde GitHub onay ekranı gibi çalışır. Ayarlamak Laravel'de nasıl döndüğünüzü görebilmeniz için yeni özelliği ele alalım:
Kurulumu
Öncelikle, çalışacak yeni bir Laravel uygulaması oluşturalım, böylece bu yeni özelliğin nasıl çalıştığını görselleştirebilirsiniz:
laravel new confirm-appcd confirm-appcomposer require laravel/ui --dev
Uygulamamız için yetki kodunu oluşturalım:php artisan ui vue --authyarn installyarn dev
Daha sonra bir SQLite veritabanını yapılandıralım (ama siz istediğiniz veri tabanı bağlantısını kullanabilirsiniz):touch database/database.sqlite
Veri tabanı bağlantısını kullanırken Laravel'in varsayılan olarak arayacağı dosyayı oluşturduk sqlite
, ancak .env
dosyayı doğru bağlantı ve veritabanı yoluyla güncellemeniz gerekecek :DB_CONNECTION=sqlite# ...# Use the default path of the sqlite driver# DB_DATABASE=laravel
Sonra bir test kullanıcısı oluşturalım:php artisan migrate
Konsolla bir test kullanıcısı oluşturabiliriz factory()
:php artisan tinker>>> $user = factory(App\User::class)->create([... 'password' => bcrypt('secret'),... 'email' => 'admin@example.com'... ]);
Denetleyicileri Yazalım
Bir SSH anahtarı eklemek gibi bir yönetim eylemini görüntülemeden önce kullanıcıların şifrelerini yeniden doğrulamalarını istediğinizi varsayalım. Kullanıcının yapılandırılan pencerede şifresini tekrar girmesini isteriz (varsayılan 3 saattir).
Kullanıcı yeni bir anahtar oluşturmadan önce /settings/ssh/create
yeni password.confirm middleware
yazılımını için bir rota oluşturacağız:
php artisan make:controller Settings/SSHController
Ardından, denetleyici eylemini oluşturunnamespaceApp\Http\Controllers\Settings;useApp\Http\Controllers\Controller;useIlluminate\Http\Request;classSSHControllerextendsController{ publicfunctioncreate(){ return view('secret'); }}
resources/views/secret.blade.php açıyoruz
:@extends('layouts.app')@section('content') <divclass="container"><divclass="row justify-content-center"><divclass="col-md-8"><h1>Add a New SSH Key</h1><p>This page is only shown after password confirmation.</p></div></div></div>@endsection
Yazma sırasında auth/passwords/confirm.blade.php
dosyasını projenize kopyalamanız gerekir . Buradan alabilirsiniz: ui / confirm.stub . Bu dosyayı kopyalayın ve aşağıdaki şekilde projenize ekleyin:resources/views/auth/passwords/confirm.blade.php
Daha sonra, routes/web.php
dosyasını tanımlamanız için ihtiyaç duyacağımız middleware yazılımı ile birlikte rotayı tanımlamamız gerekir :Route::namespace('Settings') ->middleware(['auth']) ->group(function(){ Route::get('/settings/ssh/create', 'SSHController@create')->middleware('password.confirm'); });
Bunun ile bir kez giriş yaptığınızda home sayfasına yönlendirileceksiniz ve ardından şifrenizi girmeniz isteniz :Bunun ile birlikte takip ettiyseniz secret, formundan sonra create görünüme yönlendirilirsiniz. Şifreyi onayladıktan sonra sorulmadan bu sayfayı yenileyebilirsiniz.
New ddd () Helper'ı kullanarak, bir sonraki seferde istenecek SSHController::create()olan auth.password_confirmed_atoturum değerini görselleştirmek için bu yöntemi kendi yönteminize ekleyin :
publicfunctioncreate(){ ddd(session('auth')); return view('secret');}
Sürüm v6.2.0'da config('auth.password_timeout')
yer alan değerle şifreyi tekrar onaylaması ne kadar süre önce kontrol edebilirsiniz .config/auth.php
Yorum Yap