Heim > PHP-Framework > Denken Sie an PHP > Informationen zur Installation und Verwendung des Thinkphp 6.0-Authentifizierungs-Plug-ins Think-authz

Informationen zur Installation und Verwendung des Thinkphp 6.0-Authentifizierungs-Plug-ins Think-authz

藏色散人
Freigeben: 2020-11-10 14:35:38
nach vorne
3426 Leute haben es durchsucht

eingeführt, um das ThinkPHP 6.0-zertifizierte Plug-in Think-Authz vorzustellen. Ich hoffe, es wird Freunden in Not hilfreich sein! Installation

Diese Erweiterung erfordert PHP 7.1+ und ThinkPHP 6.0+, für TP 5.1 verwenden Sie bitte Think-Casbin.

Verwenden Sie composer zur Installation:

composer require casbin/think-authz
Nach dem Login kopieren
Registrieren Sie den Dienst, in der Anwendung Zur globalen öffentlichen Datei service.php hinzufügen:
return [
    // ...

    tauthz\TauthzService::class,];
Nach dem Login kopieren

Konfigurationsdatei und Datenbankmigrationsdatei veröffentlichen: composer安装:

php think tauthz:publish
Nach dem Login kopieren

注册服务,在应用的全局公共文件service.php中加入:

php think migrate:run
Nach dem Login kopieren

发布配置文件和数据库迁移文件:

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');
Nach dem Login kopieren

这将自动生成 config/tauthz-rbac-model.confconfig/tauthz.php 文件。

执行迁移工具(确保数据库配置信息正确):

// 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}
Nach dem Login kopieren

这将创建名为 rules 的表。

用法

快速开始

安装成功后,可以这样使用:

Enforcer::getAllRoles(); // ['writer', 'reader']
Nach dem Login kopieren

你可以检查一个用户是否拥有某个权限:

Enforcer::getPolicy();
Nach dem Login kopieren

使用 Enforcer Api

它提供了非常丰富的 API,以促进对 Policy 的各种操作:

获取所有角色:

Enforcer::getRolesForUser('eve'); // ['writer']
Nach dem Login kopieren

获取所有的角色的授权规则:

Enforcer::getUsersForRole('writer'); // ['eve']
Nach dem Login kopieren

获取某个用户的所有角色:

Enforcer::hasRoleForUser('eve', 'writer'); // true or false
Nach dem Login kopieren

获取某个角色的所有用户:

Enforcer::addRoleForUser('eve', 'writer');
Nach dem Login kopieren

决定用户是否拥有某个角色:

// to user
Enforcer::addPermissionForUser('eve', 'articles', 'read');
// to role
Enforcer::addPermissionForUser('writer', 'articles','edit');
Nach dem Login kopieren

给用户添加角色:

Enforcer::deleteRoleForUser('eve', 'writer');
Nach dem Login kopieren

赋予权限给某个用户或角色:

Enforcer::deleteRolesForUser('eve');
Nach dem Login kopieren

删除用户的角色:

Enforcer::deleteRole('writer');
Nach dem Login kopieren

删除某个用户的所有角色:

Enforcer::deletePermission('articles', 'read'); 
// returns false if the permission does not exist (aka not affected).
Nach dem Login kopieren

删除单个角色:

Enforcer::deletePermissionForUser('eve', 'articles', 'read');
Nach dem Login kopieren

删除某个权限:

// to user
Enforcer::deletePermissionsForUser('eve');
// to role
Enforcer::deletePermissionsForUser('writer');
Nach dem Login kopieren

删除某个用户或角色的权限:

Enforcer::getPermissionsForUser('eve'); 
// return array
Nach dem Login kopieren

删除某个用户或角色的所有权限:

Enforcer::hasPermissionForUser('eve', 'articles', 'read');  
// true or false
Nach dem Login kopieren

获取用户或角色的所有权限:

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

决定某个用户是否拥有某个权限

rrreee

更多 API 参考 Casbin API (https://casbin.org/docs/en/management-api)。

使用中间件

该扩展包带有一个 tauthzmiddlewareBasic::classrrreee

Dadurch wird automatisch config/tauthz-rbac-model.conf generiert und config/tauthz.php Dateien. 🎜🎜Führen Sie das Migrationstool aus (🎜stellen Sie sicher, dass die Datenbankkonfigurationsinformationen korrekt sind🎜): 🎜rrreee🎜Dadurch wird eine Tabelle mit dem Namen rules erstellt. 🎜🎜🎜🎜Nutzung🎜

🎜🎜Schnellstart

🎜Nach erfolgreicher Installation können Sie es wie folgt verwenden:🎜rrreee🎜Sie können überprüfen, ob ein Benutzer eine bestimmte Berechtigung hat:🎜rrreee

🎜🎜 Verwenden Sie die Enforcer-API

🎜Es bietet eine sehr umfangreiche API, um verschiedene Vorgänge für Richtlinie zu erleichtern: 🎜🎜Alle Rollen abrufen: 🎜rrreee🎜Alle Rollen abrufen Autorisierungsregeln: 🎜rrreee🎜 Alle Rollen eines Benutzers abrufen: 🎜rrreee🎜 Alle Benutzer einer Rolle abrufen: 🎜rrreee🎜Bestimmen Sie, ob der Benutzer eine Rolle hat: 🎜rrreee🎜Fügen Sie dem Benutzer eine Rolle hinzu: 🎜rrreee🎜Geben Sie einem Benutzer Berechtigungen oder Rolle: 🎜rrreee🎜Eine Benutzerrolle löschen:🎜rrreee🎜Alle Rollen eines Benutzers löschen:🎜rrreee🎜Eine einzelne Rolle löschen:🎜rrreee🎜Eine Berechtigung löschen:🎜rrreee🎜Einen Benutzer oder eine Rolle löschen. Berechtigungen: 🎜rrreee 🎜Alle entfernen Berechtigungen von einem Benutzer oder einer Rolle: 🎜rrreee🎜Alle Berechtigungen von einem Benutzer oder einer Rolle abrufen: 🎜rrreee🎜Bestimmen Sie, ob ein Benutzer eine bestimmte Berechtigung hat🎜rrreee🎜Weitere API Siehe Casbin API (https:/ /casbin.org/docs/en/management-api). 🎜

🎜🎜Middleware verwenden

🎜Dieses Erweiterungspaket enthält eine tauthzmiddlewareBasic::class-Middleware:🎜rrreee

Das obige ist der detaillierte Inhalt vonInformationen zur Installation und Verwendung des Thinkphp 6.0-Authentifizierungs-Plug-ins Think-authz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage