>本文演示了使用Slim Micro-Framework和Cartalyst的Sentinel軟件包構建一個簡單的演示應用程序,以供用戶授權。 Sentinel簡化了用戶管理,包括角色,權限和身份驗證,在多用戶應用程序中。
關鍵功能和好處:
>數據庫設置:
>對於數據庫交互,創建必要的表。 Laravel用戶可以使用遷移:
composer require slim/slim:~2.0 twig/twig:~1.* cartalyst/sentinel:2.0.* illuminate/database illuminate/events symfony/http-foundation ircmaxell/password-compat
否則,在文件頂部添加數據庫連接詳細信息後,手動執行
。>應用程序引導(
):php artisan vendor:publish --provider="Cartalyst\Sentinel\Laravel\SentinelServiceProvider" php artisan migrate
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();
>
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();
文章的其餘部分詳細介紹了創建註冊和登錄頁面,處理用戶激活,實現權限檢查(使用)以及登錄用戶。 代碼示例涵蓋路由,用戶創建,角色分配,激活電子郵件發送以及基於許可的訪問控制。 這篇文章以常見問題解答為例,解決了常見的前哨使用問題。
以上是消除使用Sentinel用戶授權的痛苦的詳細內容。更多資訊請關注PHP中文網其他相關文章!