Maison > développement back-end > tutoriel php > Supprimer la douleur de l'autorisation des utilisateurs avec Sentinel

Supprimer la douleur de l'autorisation des utilisateurs avec Sentinel

William Shakespeare
Libérer: 2025-02-16 10:48:13
original
604 Les gens l'ont consulté

Cet article démontre la création d'une application de démonstration simple utilisant Slim Micro-Framework et le package Sentinel de Cartalyst pour l'autorisation des utilisateurs. Sentinel rationalise la gestion des utilisateurs, y compris les rôles, les autorisations et l'authentification, dans les applications multi-utilisateurs.

Removing the Pain of User Authorization with Sentinel

Caractéristiques et avantages clés:

  • Autorisation de l'utilisateur simplifié: Sentinel propose une API conviviale pour gérer les utilisateurs, les groupes et les autorisations.
  • Intégration du cadre: fonctionne bien avec Slim et Laravel, fournissant des outils pour la création de rôles, l'authentification et le contrôle de l'autorisation.
  • Implémentation de rôle facile: la création et la gestion des rôles avec des paramètres d'autorisation détaillés sont simples.
  • Sécurité améliorée: inclut les systèmes d'activation et de rappel de mot de passe pour une sécurité améliorée via la vérification par e-mail et les réinitialités du mot de passe.
  • Exemple pratique: le tutoriel fournit une démonstration pratique des capacités de Sentinel dans un exemple d'application.

Configuration de l'environnement:

Ce didacticiel utilise des minces, vagues et du compositeur. Le code de démonstration complet est disponible sur GitHub. Commencez par installer les packages requis:

composer require slim/slim:~2.0 twig/twig:~1.* cartalyst/sentinel:2.0.* illuminate/database illuminate/events symfony/http-foundation ircmaxell/password-compat
Copier après la connexion

Configuration de la base de données:

Pour l'interaction de la base de données, créez les tables nécessaires. Les utilisateurs de Laravel peuvent utiliser des migrations:

php artisan vendor:publish --provider="Cartalyst\Sentinel\Laravel\SentinelServiceProvider"
php artisan migrate
Copier après la connexion

Sinon, exécutez manuellement vendor/cartalyst/sentinel/schema/mysql.sql après avoir ajouté les détails de votre connexion de la base de données en haut du fichier.

Bootstrap d'application (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();
Copier après la connexion

liaisons des conteneurs (app/bootstrap/container.php):

Configurer les liaisons des conteneurs pour brindilles et éloquents:

$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();
Copier après la connexion

Création de rôles:

Définir les rôles et les autorisations (ce code est temporaire, exécutez une fois pour remplir la base de données):

$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
    ),
));
Copier après la connexion

Le reste de l'article détaille la création de pages d'inscription et de connexion, la gestion de l'activation des utilisateurs, la mise en œuvre de vérifications d'autorisation (en utilisant hasAccess()) et la déconnexion des utilisateurs. Les exemples de code couvrent le routage, la création d'utilisateurs, l'attribution de rôles, l'envoi d'e-mail d'activation et le contrôle d'accès basé sur l'autorisation. L'article se termine par une section FAQ concernant les questions courantes d'utilisation du sentinelle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal