Meine Blog-Beiträge

Neues Passwort-Verifizierungssystem für Benutzer, die bei Laravel 6.2 angemeldet sind

Neues Passwort-Verifizierungssystem für Benutzer, die bei Laravel 6.2 angemeldet sind


Mit einer neuen Passwortbestätigungsfunktion funktioniert wie der GitHub-Bestätigungsbildschirm, wenn Sie vertrauliche Aktionen ausführen. Nehmen wir die neue Funktion, damit Sie sehen können, wie Sie wieder in Set Laravel sind:

Setup

Erstellen wir zunächst eine neue Laravel-App, damit Sie visualisieren können, wie diese neue Funktion funktioniert:

laravel neue Confirm-App
cd confirm-app
Komponist benötigen laravel/ui --giant
 Erstellen wir den Autorisierungscode für unsere Anwendung:
php artisan ui vue --auth
installieren Morgen
Garn-Riese

Konfigurieren wir dann eine SQLite-Datenbank (aber Sie können die gewünschte Datenbankverbindung verwenden):
touch database/database.sqlite 

Bei Verwendung eines Datenbanklinks haben wir die Datei erstellt, nach der Laravel standardmäßig suchen würde. SqliteAber .envDatei über die richtige Verbindung und Datenbank aktualisieren :
DB_CONNECTION=sqlite
# ... • Verwenden Sie den Standardpfad des sqlite-Treibers#DB_DATABASE=laravel
 Erstellen wir dann einen Testbenutzer:
php handwerker migrieren
Wir können einen Testbenutzer mit der Konsole erstellen Fabrik():
php Handwerker Basteln
> $user = factory(App-User::class)-create([
... 'password' => bcrypt('secret'),
... 'email' => 'admin@example.com'
... ]);

Let es Write Controller

Angenommen, Sie möchten, dass Benutzer ihre Kennwörter erneut überprüfen, bevor sie eine administrative Aktion anzeigen, z. B. das Hinzufügen eines SSH-Schlüssels. Wir möchten, dass der Benutzer das Kennwort im konfigurierten Fenster erneut eingibt (Standard 3 Stunden).

Bevor der Benutzer einen neuen Schlüssel erstellen kann /settings/ssh/createNeu password.confirm Middleware Software für Eine Route erstellen wir:

php artisan make:controller Einstellungen/SSHController
Erstellen Sie dann die Controller-Aktion
namespace App\Http\Controllers\Settings;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class SSHController extends Controller
{
    public function create()
    {
        return view('secret');
    }
}
ressourcen/ansichten/secret.blade.php:
@extends('layouts.app')
@section('Inhalt')
     div class="container">div class="row justify-content-center">div class="col-md-8">h1>Neue SSH-Tasteh1>p>Diese Seite wird erst nach Passwortbestätigung angezeigt.  p>div>div>div >div>
@endsection
Während des Schreibens auth/passwords/confirm.blade.php Datei für Ihr Projekt Sie müssen kopieren Hier erhalten Sie: 
ui / confirm.stub . Kopieren Sie diese Datei, und fügen Sie sie wie folgt zu Ihrem Projekt hinzu:
ressourcen/views/auth/passwords/confirm.blade.php
Dann routen/web.php Datei wir müssen den Weg mit der Middleware-Software definieren, die wir identifizieren müssen. :
Route::namespace('Settings')
    ->middleware(['auth'])
    ->group(function () {
        Route::get('/settings/ssh/create', 'SSHController@create')->middleware('password.confirm');
    });
Sobald Sie sich damit angemeldet haben, werden Sie auf die Startseite weitergeleitet und bitten Sie dann, Ihr Passwort einzugeben:


Wenn Sie ihm mit einem geheimen Folgen gefolgt sind, werden Sie umgeleitet, um die Ansicht nach dem Formular zu erstellen. Nachdem Sie das Kennwort bestätigt haben, können Sie diese Seite aktualisieren, ohne dazu aufgefordert zu werden.

Fügen Sie diese Methode Zu ihrer eigenen Methode hinzu, um auth.password_confirmed_atoturum zu visualisieren, d. h. sSHController::create(), der beim nächsten Mal mit dem neuen ddd (Hilfe) angefordert werden soll:

public function create()
{
    ddd(session('auth'));
    return view('secret');
}


 Version v6.2.0 config('auth.password_timeout') Ort Feld Wert wie lange, bevor das Kennwort erneut bestätigt wird .config/auth.php



Diesen Artikel teilen


Kommentare (0)

Kommentar