Heim PHP-Framework Laravel Benutzerauthentifizierung und Autorisierung mit Laravel: Sichern Sie Ihre Anwendung

Benutzerauthentifizierung und Autorisierung mit Laravel: Sichern Sie Ihre Anwendung

Aug 12, 2023 pm 11:55 PM
laravel 授权 用户认证

Benutzerauthentifizierung und Autorisierung mit Laravel: Sichern Sie Ihre Anwendung

Benutzerauthentifizierung und -autorisierung mit Laravel: Schutz der Anwendungssicherheit

Zitat:

Für viele Webanwendungen sind Benutzerauthentifizierung und -autorisierung wichtige Komponenten der Datensicherheit und Zugriffskontrolle. Das Laravel-Framework bietet leistungsstarke und flexible Mechanismen zur Benutzerauthentifizierung und -autorisierung, sodass Entwickler Anwendungen einfach vor unbefugtem Zugriff schützen können.

In diesem Artikel erfahren Sie, wie Sie die Authentifizierungs- und Autorisierungsfunktionen von Laravel verwenden, um Ihre Anwendung zu sichern, und stellen einige praktische Codebeispiele bereit.

1. Benutzerauthentifizierung

Bei der Benutzerauthentifizierung wird die Identität des Benutzers überprüft, um sicherzustellen, dass es sich bei dem Benutzer um einen legitimen Anwendungsbenutzer handelt. Laravel bietet ein integriertes Authentifizierungssystem, mit dem Funktionen wie Benutzerregistrierung, Anmeldung und Passwortzurücksetzung problemlos implementiert werden können.

  1. Benutzermodell und Datenbankmigration einrichten

Zuerst müssen wir ein Benutzermodell und eine entsprechende Datenbankmigration erstellen. Führen Sie den folgenden Befehl im Terminal aus, um das Benutzermodell und die Datenbankmigrationen zu generieren:

php artisan make:model User -m
Nach dem Login kopieren

Dadurch wird eine User.php-Modelldatei im App-Verzeichnis und eine Datenbankmigrationsdatei im Verzeichnis „database/migrations“ zum Erstellen der Benutzertabelle generiert.

Bearbeiten Sie die generierte Migrationsdatei und ändern Sie den Code in der up()-Methode wie folgt:

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}
Nach dem Login kopieren

Führen Sie dann den Migrationsbefehl aus, um die Benutzertabelle zu erstellen:

php artisan migrate
Nach dem Login kopieren
Nach dem Login kopieren
  1. Erstellen Sie den Authentifizierungscontroller und sehen Sie ihn an

Als nächstes führen wir Es muss ein Authentifizierungscontroller und entsprechende Ansichten erstellt werden, die Vorgänge wie Benutzerregistrierung, Anmeldung und Kennwortzurücksetzung verarbeiten. Führen Sie den folgenden Befehl aus, um einen Auth-Controller zu generieren:

php artisan make:controller AuthController
Nach dem Login kopieren

Im generierten AuthController-Controller können wir die integrierten AuthTraits von Laravel verwenden, um die Authentifizierungslogik zu verwalten. Stellen Sie sicher, dass Sie den folgenden Namespace in Ihrem Controller einführen:

use IlluminateFoundationAuthAuthenticatesUsers;
use IlluminateFoundationAuthRegistersUsers;
use IlluminateFoundationAuthResetsPasswords;
Nach dem Login kopieren

Anschließend können wir im AuthController einige Methoden definieren, um die Benutzerauthentifizierung durchzuführen. Hier sind einige Beispiele für häufig verwendete Methoden:

// 注册用户
public function register(Request $request)
{
    // 实现用户注册逻辑
}

// 用户登录
public function login(Request $request)
{
    // 实现用户登录逻辑
}

// 用户登出
public function logout(Request $request)
{
    // 实现用户登出逻辑
}

// 密码重置
public function resetPassword(Request $request)
{
    // 实现密码重置逻辑
}
Nach dem Login kopieren

Wir müssen auch einige Ansichten erstellen, um die Registrierungs-, Anmelde- und Passwort-Reset-Formulare anzuzeigen. Diese Ansichten können mit dem folgenden Befehl generiert werden:

php artisan make:auth
Nach dem Login kopieren

Nachdem der obige Befehl ausgeführt wurde, generiert Laravel automatisch die relevanten Ansichtsdateien, einschließlich register.blade.php, login.blade.php, Passwortordner usw.

  1. Routing-Einstellungen

Nach Abschluss der obigen Schritte müssen wir das entsprechende Routing konfigurieren, um Benutzerauthentifizierungsanfragen zu verarbeiten. In der Datei „routes/web.php“ können Sie die folgende Beispielroute hinzufügen:

// 显示注册表单
Route::get('/register', 'AuthController@showRegistrationForm')->name('register');
// 处理用户注册
Route::post('/register', 'AuthController@register');

// 显示登录表单
Route::get('/login', 'AuthController@showLoginForm')->name('login');
// 处理用户登录
Route::post('/login', 'AuthController@login');

// 用户登出
Route::post('/logout', 'AuthController@logout')->name('logout');

// 显示密码重置链接请求表单
Route::get('/password/reset', 'AuthController@showLinkRequestForm')->name('password.request');
// 处理密码重置链接请求
Route::post('/password/email', 'AuthController@sendResetLinkEmail')->name('password.email');

// 显示密码重置表单
Route::get('/password/reset/{token}', 'AuthController@showResetForm')->name('password.reset');
// 处理密码重置请求
Route::post('/password/reset', 'AuthController@resetPassword')->name('password.update');
Nach dem Login kopieren

Zu diesem Zeitpunkt haben wir die für die Benutzerauthentifizierung erforderliche Grundkonfiguration abgeschlossen. Durch Aufruf der entsprechenden URL im Browser können Sie diese Funktionen zur Registrierung, Anmeldung und zum Zurücksetzen von Passwörtern nutzen.

2. Benutzerautorisierung

Bei der Benutzerautorisierung wird festgestellt, ob ein Benutzer das Recht hat, auf bestimmte Ressourcen zuzugreifen oder bestimmte Vorgänge auszuführen. Die Autorisierungsfunktion von Laravel bestimmt Berechtigungen basierend auf den Identitätsinformationen und der Rolle des Benutzers und bietet einen einfachen und benutzerfreundlichen Mechanismus zur Berechtigungskontrolle.

  1. Berechtigungsmodell und Datenbankmigration definieren

Zuerst müssen wir ein Berechtigungsmodell und eine entsprechende Datenbankmigration erstellen. Führen Sie den folgenden Befehl im Terminal aus, um das Berechtigungsmodell und die Datenbankmigrationen zu generieren:

php artisan make:model Permission -m
Nach dem Login kopieren

Dadurch wird eine Permission.php-Modelldatei im App-Verzeichnis und eine Datenbankmigrationsdatei im Verzeichnis „database/migrations“ zum Erstellen der Berechtigungstabelle generiert.

Bearbeiten Sie die generierte Migrationsdatei und ändern Sie den Code in der up()-Methode wie folgt:

public function up()
{
    Schema::create('permissions', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('slug');
        $table->timestamps();
    });
}
Nach dem Login kopieren

Führen Sie dann den Migrationsbefehl aus, um die Berechtigungstabelle zu erstellen:

php artisan migrate
Nach dem Login kopieren
Nach dem Login kopieren
  1. Erstellen Sie die Autorisierungsrichtlinie und Middleware.

Als nächstes führen wir Sie müssen eine Autorisierungsrichtlinie erstellen, um die Beziehung zwischen Benutzerrollen und Berechtigungen zu definieren, und eine Autorisierungs-Middleware erstellen, um zu überprüfen, ob Benutzer berechtigt sind, auf bestimmte Ressourcen zuzugreifen.

Führen Sie den folgenden Befehl aus, um eine Autorisierungsrichtlinie zu generieren:

php artisan make:policy PostPolicy
Nach dem Login kopieren

In der generierten PostPolicy-Datei können wir einige Methoden definieren, um zu bestimmen, ob der Benutzer die Berechtigung zum Zugriff auf bestimmte Ressourcen hat. Hier ist ein Beispiel:

public function view(User $user, Post $post)
{
    // 判断用户是否有权限查看指定的文章
    return $user->can('view-post');
}
Nach dem Login kopieren

Dann müssen wir eine Autorisierungs-Middleware erstellen, um die Berechtigungen des Benutzers zu überprüfen. Führen Sie den folgenden Befehl aus, um eine Middleware zu generieren:

php artisan make:middleware CheckPermission
Nach dem Login kopieren

In der generierten CheckPermission-Middleware-Datei können wir eine benutzerdefinierte Logik implementieren, um zu bestimmen, ob der Benutzer die Berechtigung zum Zugriff auf eine bestimmte Ressource hat. Hier ist ein Beispiel:

public function handle($request, Closure $next, $permission)
{
    if (! $request->user()->can($permission)) {
        abort(403, 'Unauthorized');
    }

    return $next($request);
}
Nach dem Login kopieren
  1. Autorisierungsrichtlinie und Middleware konfigurieren

Nach Abschluss der obigen Schritte müssen wir auch die Autorisierungsrichtlinie und Middleware in den relevanten Modellen und Routen konfigurieren.

In der Datei app/Providers/AuthServiceProvider.php müssen wir die Autorisierungsrichtlinie registrieren. Suchen Sie das Attribut $policies und fügen Sie den folgenden Code hinzu:

protected $policies = [
    'AppMode' => 'AppPoliciesModePolicy',
];
Nach dem Login kopieren

In der Datei „routes/web.php“ können Sie die Methode middleware() verwenden, um Autorisierungs-Middleware anzuwenden. Das Folgende ist ein Beispiel:

Route::group(['middleware' => 'auth'], function () {
    Route::get('/posts/{post}', 'PostController@show')->middleware('can:view,post');
});
Nach dem Login kopieren

Im obigen Beispiel setzen wir den Wert, der dem Schlüsselwert „Middleware“ entspricht, auf „can:view,post“, was bedeutet, dass beim Zugriff auf die angegebene Route die Middleware „Auth“ dies tut Zunächst wird die Benutzeridentität überprüft und anschließend überprüft, ob der Benutzer über die Berechtigung zum Zugriff auf eine bestimmte Ressource verfügt.

Zusammenfassung:

Die Verwendung von Laravel zur Benutzerauthentifizierung und -autorisierung ist ein wichtiger Schritt zum Schutz der Anwendungssicherheit und Zugriffskontrolle. Durch das integrierte Authentifizierungssystem und die Autorisierungsfunktionen von Laravel können Entwickler Benutzerregistrierung, Anmeldung, Passwortzurücksetzung und andere Funktionen einfach implementieren und sicherstellen, dass die Ressourcen, auf die Benutzer zugreifen, legal sind und durch Autorisierungsrichtlinien und Middleware geschützt sind. Das Obige ist eine einfache Demonstration. Sie können sie entsprechend den tatsächlichen Anforderungen weiter anpassen und erweitern.

Referenzlink: https://laravel.com/docs/authentication

Das obige ist der detaillierte Inhalt vonBenutzerauthentifizierung und Autorisierung mit Laravel: Sichern Sie Ihre Anwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Vergleich der neuesten Versionen von Laravel und CodeIgniter Vergleich der neuesten Versionen von Laravel und CodeIgniter Jun 05, 2024 pm 05:29 PM

Die neuesten Versionen von Laravel 9 und CodeIgniter 4 bieten aktualisierte Funktionen und Verbesserungen. Laravel9 übernimmt die MVC-Architektur und bietet Funktionen wie Datenbankmigration, Authentifizierung und Template-Engine. CodeIgniter4 nutzt die HMVC-Architektur, um Routing, ORM und Caching bereitzustellen. In Bezug auf die Leistung sorgen das auf Dienstanbietern basierende Designmuster von Laravel9 und das leichte Framework von CodeIgniter4 für eine hervorragende Leistung. In praktischen Anwendungen eignet sich Laravel9 für komplexe Projekte, die Flexibilität und leistungsstarke Funktionen erfordern, während CodeIgniter4 für schnelle Entwicklung und kleine Anwendungen geeignet ist.

Wie vergleichen sich die Datenverarbeitungsfunktionen in Laravel und CodeIgniter? Wie vergleichen sich die Datenverarbeitungsfunktionen in Laravel und CodeIgniter? Jun 01, 2024 pm 01:34 PM

Vergleichen Sie die Datenverarbeitungsfunktionen von Laravel und CodeIgniter: ORM: Laravel verwendet EloquentORM, das eine relationale Klassen-Objekt-Zuordnung bereitstellt, während CodeIgniter ActiveRecord verwendet, um das Datenbankmodell als Unterklasse von PHP-Klassen darzustellen. Abfrage-Builder: Laravel verfügt über eine flexible verkettete Abfrage-API, während der Abfrage-Builder von CodeIgniter einfacher und Array-basiert ist. Datenvalidierung: Laravel bietet eine Validator-Klasse, die benutzerdefinierte Validierungsregeln unterstützt, während CodeIgniter über weniger integrierte Validierungsfunktionen verfügt und eine manuelle Codierung benutzerdefinierter Regeln erfordert. Praxisfall: Beispiel einer Benutzerregistrierung zeigt Lar

Was ist einsteigerfreundlicher: Laravel oder CodeIgniter? Was ist einsteigerfreundlicher: Laravel oder CodeIgniter? Jun 05, 2024 pm 07:50 PM

Für Anfänger bietet CodeIgniter eine sanftere Lernkurve und weniger Funktionen, deckt aber die Grundbedürfnisse ab. Laravel bietet einen größeren Funktionsumfang, weist jedoch eine etwas steilere Lernkurve auf. In Bezug auf die Leistung schneiden sowohl Laravel als auch CodeIgniter gut ab. Laravel verfügt über eine umfangreichere Dokumentation und aktive Community-Unterstützung, während CodeIgniter einfacher und leichtgewichtiger ist und über starke Sicherheitsfunktionen verfügt. Im praktischen Fall der Erstellung einer Blogging-Anwendung vereinfacht EloquentORM von Laravel die Datenmanipulation, während CodeIgniter mehr manuelle Konfiguration erfordert.

Laravel vs CodeIgniter: Welches Framework ist besser für große Projekte? Laravel vs CodeIgniter: Welches Framework ist besser für große Projekte? Jun 04, 2024 am 09:09 AM

Bei der Auswahl eines Frameworks für große Projekte haben Laravel und CodeIgniter jeweils ihre eigenen Vorteile. Laravel ist für Anwendungen auf Unternehmensebene konzipiert und bietet modularen Aufbau, Abhängigkeitsinjektion und einen leistungsstarken Funktionsumfang. CodeIgniter ist ein leichtes Framework, das sich eher für kleine bis mittelgroße Projekte eignet und Wert auf Geschwindigkeit und Benutzerfreundlichkeit legt. Für große Projekte mit komplexen Anforderungen und einer großen Anzahl von Benutzern sind die Leistung und Skalierbarkeit von Laravel besser geeignet. Für einfache Projekte oder Situationen mit begrenzten Ressourcen sind die leichten und schnellen Entwicklungsfunktionen von CodeIgniter idealer.

Laravel – Handwerkerbefehle Laravel – Handwerkerbefehle Aug 27, 2024 am 10:51 AM

Laravel – Artisan Commands – Laravel 5.7 bietet eine neue Möglichkeit, neue Befehle zu behandeln und zu testen. Es enthält eine neue Funktion zum Testen von Handwerkerbefehlen und die Demonstration wird unten erwähnt?

Laravel vs CodeIgniter: Welches Framework ist besser für kleine Projekte? Laravel vs CodeIgniter: Welches Framework ist besser für kleine Projekte? Jun 04, 2024 pm 05:29 PM

Für kleine Projekte eignet sich Laravel, für größere Projekte, die starke Funktionalität und Sicherheit erfordern. CodeIgniter eignet sich für sehr kleine Projekte, die geringes Gewicht und Benutzerfreundlichkeit erfordern.

Welche ist die bessere Template-Engine, Laravel oder CodeIgniter? Welche ist die bessere Template-Engine, Laravel oder CodeIgniter? Jun 03, 2024 am 11:30 AM

Vergleichen Sie Laravel's Blade und die Twig-Vorlagen-Engine von CodeIgniter und wählen Sie je nach Projektanforderungen und persönlichen Vorlieben: Blade basiert auf der MVC-Syntax, die eine gute Codeorganisation und Vorlagenvererbung fördert. Twig ist eine Bibliothek eines Drittanbieters, die flexible Syntax, leistungsstarke Filter, erweiterten Support und eine Sicherheits-Sandbox bietet.

Laravel – Paginierungsanpassungen Laravel – Paginierungsanpassungen Aug 27, 2024 am 10:51 AM

Laravel – Paginierungsanpassungen – Laravel enthält eine Paginierungsfunktion, die einem Benutzer oder Entwickler hilft, eine Paginierungsfunktion einzubinden. Der Laravel-Paginator ist in den Abfrage-Builder und Eloquent ORM integriert. Die Paginierungsmethode automatisch

See all articles