


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.
- 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
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(); }); }
Führen Sie dann den Migrationsbefehl aus, um die Benutzertabelle zu erstellen:
php artisan migrate
- 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
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;
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) { // 实现密码重置逻辑 }
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
Nachdem der obige Befehl ausgeführt wurde, generiert Laravel automatisch die relevanten Ansichtsdateien, einschließlich register.blade.php, login.blade.php, Passwortordner usw.
- 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');
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.
- 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
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(); }); }
Führen Sie dann den Migrationsbefehl aus, um die Berechtigungstabelle zu erstellen:
php artisan migrate
- 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
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'); }
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
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); }
- 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', ];
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'); });
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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.

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

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.

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 – 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?

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.

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 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
