Maison >cadre php >PensezPHP >À propos de l'installation et de l'utilisation du plug-in d'authentification Thinkphp 6.0 Think-authz

À propos de l'installation et de l'utilisation du plug-in d'authentification Thinkphp 6.0 Think-authz

藏色散人
藏色散人avant
2020-11-10 14:35:383422parcourir
Ce qui suit est

Thinkphp La colonne tutoriel présentera le plug-in de certification ThinkPHP 6.0 Think-Authz, j'espère qu'il sera utile aux amis dans le besoin !

Installation

Cette extension nécessite PHP 7.1+ et ThinkPHP 6.0+, pour TP 5.1, veuillez utiliser Think-Casbin.

Utilisez

pour installer : composer

composer require casbin/think-authz
pour enregistrer le service et ajoutez :

return [
    // ...

    tauthz\TauthzService::class,];
service.php au fichier public global de l'application pour publier les fichiers de configuration et les fichiers de migration de base de données :

php think tauthz:publish
Cela générera automatiquement les fichiers

et config/tauthz-rbac-model.conf. config/tauthz.php

Exécutez l'outil de migration (

Assurez-vous que les informations de configuration de la base de données sont correctes) :

php think migrate:run
Cela créera une table nommée

. rules

Utilisation

Démarrage rapide

Après une installation réussie, vous pouvez l'utiliser comme ceci :

use tauthz\facade\Enforcer;
// adds permissions to a user
Enforcer::addPermissionForUser('eve', 'articles', 'read');
// adds a role for a user.
Enforcer::addRoleForUser('eve', 'writer');
// adds permissions to a rule
Enforcer::addPolicy('writer', 'articles','edit');
Vous pouvez vérifier si un utilisateur dispose d'une certaine autorisation :

// to check if a user has permission
if (Enforcer::enforce("eve", "articles", "edit")) {
    // permit eve to edit articles} else {
    // deny the request, show an error}

Utiliser l'API Enforcer

qui fournit un

très riche pour faciliter diverses API opérations : Policy

Obtenir tous les rôles :

Enforcer::getAllRoles(); // ['writer', 'reader']
Obtenir les règles d'autorisation pour tous les rôles :

Enforcer::getPolicy();
Obtenir tous les rôles d'un utilisateur :

Enforcer::getRolesForUser('eve'); // ['writer']
Obtenir tous les utilisateurs de un certain rôle :

Enforcer::getUsersForRole('writer'); // ['eve']
Déterminer si un utilisateur a un certain rôle :

Enforcer::hasRoleForUser('eve', 'writer'); // true or false
Ajouter un rôle à un utilisateur :

Enforcer::addRoleForUser('eve', 'writer');
Donner des autorisations à un utilisateur ou un rôle :

// to user
Enforcer::addPermissionForUser('eve', 'articles', 'read');
// to role
Enforcer::addPermissionForUser('writer', 'articles','edit');
Supprimer le rôle d'un utilisateur :

Enforcer::deleteRoleForUser('eve', 'writer');
Supprimer tous les rôles d'un utilisateur :

Enforcer::deleteRolesForUser('eve');
Supprimer un seul rôle :

Enforcer::deleteRole('writer');
Supprimer une autorisation :

Enforcer::deletePermission('articles', 'read'); 
// returns false if the permission does not exist (aka not affected).
Supprimer les autorisations pour un utilisateur ou un rôle :

Enforcer::deletePermissionForUser('eve', 'articles', 'read');
Supprimer toutes les autorisations pour un utilisateur ou un rôle :

// to user
Enforcer::deletePermissionsForUser('eve');
// to role
Enforcer::deletePermissionsForUser('writer');
Obtenir toutes les autorisations pour un utilisateur ou un rôle :

Enforcer::getPermissionsForUser('eve'); 
// return array
Déterminer si un utilisateur dispose d'une certaine autorisation

Enforcer::hasPermissionForUser('eve', 'articles', 'read');  
// true or false
Plus

Veuillez vous référer à l'API Casbin (https://casbin.org/docs/en/management-api). API

Utilisation d'un middleware

Ce package d'extension est livré avec un

middleware :tauthzmiddlewareBasic::class

Route::get('news/:id','News/Show')
    ->middleware(\tauthz\middleware\Basic::class, ['news', 'read']);

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer