Artikel ini menunjukkan membina aplikasi demo mudah menggunakan pakej sentinel mikro dan kartal untuk kebenaran pengguna. Sentinel menyelaraskan pengurusan pengguna, termasuk peranan, keizinan, dan pengesahan, dalam aplikasi multi-pengguna.
Ciri -ciri & Manfaat Utama:
Menyediakan persekitaran:
Tutorial ini menggunakan Slim, Vagrant, dan Composer. Kod demo lengkap boleh didapati di GitHub. Mulakan dengan memasang pakej yang diperlukan:
composer require slim/slim:~2.0 twig/twig:~1.* cartalyst/sentinel:2.0.* illuminate/database illuminate/events symfony/http-foundation ircmaxell/password-compat
Untuk interaksi pangkalan data, buat jadual yang diperlukan. Pengguna Laravel boleh menggunakan migrasi:
php artisan vendor:publish --provider="Cartalyst\Sentinel\Laravel\SentinelServiceProvider" php artisan migrate
selepas menambah butiran sambungan pangkalan data anda di bahagian atas fail. vendor/cartalyst/sentinel/schema/mysql.sql
): 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();
Pengikatan kontena (): app/bootstrap/container.php
$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();
Mewujudkan peranan:
Tentukan peranan dan keizinan (kod ini bersifat sementara, dijalankan sekali untuk mengisi pangkalan data):
$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 ), ));
), dan log keluar pengguna. Contoh kod meliputi penghalaan, penciptaan pengguna, tugasan peranan, penghantaran e-mel pengaktifan, dan kawalan akses berasaskan kebenaran. Artikel ini disimpulkan dengan seksyen FAQ yang menangani soalan penggunaan sentinel biasa. hasAccess()
Atas ialah kandungan terperinci Mengeluarkan kesakitan kebenaran pengguna dengan sentinel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!