Dieser Artikel zeigt, dass das Erstellen einer einfachen Demo-Anwendung mit Slim Micro-Framework und dem Sentinel-Paket von Cartalyyst für die Benutzerautorisierung erstellt wird. Sentinel optimiert die Benutzerverwaltung, einschließlich Rollen, Berechtigungen und Authentifizierung, in Multi-Benutzer-Anwendungen.
Schlüsselfunktionen und Vorteile:
Einrichten der Umgebung:
In diesem Tutorial wird schlank, vagrant und Komponist verwendet. Der vollständige Demo -Code ist auf GitHub verfügbar. Beginnen Sie mit der Installation der erforderlichen Pakete:
composer require slim/slim:~2.0 twig/twig:~1.* cartalyst/sentinel:2.0.* illuminate/database illuminate/events symfony/http-foundation ircmaxell/password-compat
Datenbank -Setup:
Erstellen Sie für die Datenbankinteraktion die erforderlichen Tabellen. Laravel -Benutzer können Migrationen verwenden:
php artisan vendor:publish --provider="Cartalyst\Sentinel\Laravel\SentinelServiceProvider" php artisan migrate
Andernfalls führen Sie vendor/cartalyst/sentinel/schema/mysql.sql
manuell aus, nachdem Sie Ihre Datenbankverbindungsdetails oben in der Datei hinzugefügt haben.
Anwendungsbootstrap (public/index.php
):
<?php require_once __DIR__.'/../vendor/autoload.php'; $app = new \Slim\Slim(); //register bindings include_once __DIR__.'/../app/bootstrap/container.php'; include_once __DIR__.'/../app/routes.php'; $app->run();
Containerbindungen (app/bootstrap/container.php
):
Konfigurieren Sie Containerbindungen für Zweig und eloquent:
$app->container->twigLoader = new Twig_Loader_Filesystem(__DIR__.'/../views'); $app->container->twig = new Twig_Environment($app->container->twigLoader, array( 'cache' => false, )); $capsule = new \Illuminate\Database\Capsule\Manager(); $capsule->addConnection([ 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'capsule', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', ]); $capsule->bootEloquent(); $app->container->sentinel = (new \Cartalyst\Sentinel\Native\Facades\Sentinel())->getSentinel();
Rollen erstellen:
Rollen und Berechtigungen definieren (dieser Code ist vorübergehend, ausgeführt einmal, um die Datenbank zu bevölkern):
$app->container->sentinel->getRoleRepository()->createModel()->create(array( 'name' => 'Admin', 'slug' => 'admin', 'permissions' => array( 'user.create' => true, 'user.update' => true, 'user.delete' => true ), )); $app->container->sentinel->getRoleRepository()->createModel()->create(array( 'name' => 'User', 'slug' => 'user', 'permissions' => array( 'user.update' => true ), ));
Der Rest der Artikeldetails erstellt Anmelde- und Anmeldeseiten, die Aktivierung der Benutzeraktivierung, die Implementierung von Berechtigungsüberprüfungen (mit hasAccess()
) und die Anmeldung von Benutzern. Die Code-Beispiele decken Routing, Benutzererstellung, Rollenzuweisung, Aktivierungs-E-Mail-Senden und Berechtigungsbasis-Zugriffskontrolle ab. Der Artikel endet mit einem FAQ
Das obige ist der detaillierte Inhalt vonEntfernen Sie den Schmerz der Benutzerautorisierung mit Sentinel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!