ホームページ >PHPフレームワーク >ThinkPHP >Thinkphp 6.0 認証プラグイン Think-authz のインストールと使用について
以下は、ThinkPHP 6.0 認証プラグイン Think-authz を紹介する ThinkPHP チュートリアル コラムです。困っている友人の役に立てば幸いです。 !
この拡張機能には PHP 7.1 および ThinkPHP 6.0 が必要です。TP 5.1 の場合は、Think-Casbin を使用してください。
composer
インストールを使用します:
composer require casbin/think-authz
サービスを登録し、アプリケーションのグローバル パブリック ファイルに追加します service.php
:
return [ // ... tauthz\TauthzService::class,];
設定ファイルを公開し、データベース移行 ファイル:
php think tauthz:publish
これにより、config/tauthz-rbac-model.conf
ファイルと config/tauthz.php
ファイルが自動的に生成されます。
移行ツールを実行します (データベース構成情報が正しいことを確認してください):
php think migrate:run
これにより、rules
という名前のテーブルが作成されます。
インストールが成功したら、次のように使用できます:
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');
ユーザーが特定の権限を持っているかどうかを確認できます:
// 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}
これは、## を容易にするための非常に豊富な API
を提供します。 #Policy の各種操作:
Enforcer::getAllRoles(); // ['writer', 'reader']すべてのロールの認可ルールの取得:
Enforcer::getPolicy();ユーザーのすべてのロールの取得:
Enforcer::getRolesForUser('eve'); // ['writer']特定のロールのすべてのユーザーを取得する:
Enforcer::getUsersForRole('writer'); // ['eve']ユーザーが特定のロールを持っているかどうかを確認する:
Enforcer::hasRoleForUser('eve', 'writer'); // true or falseユーザーにロールを追加する:
Enforcer::addRoleForUser('eve', 'writer');ユーザーまたはロールに権限を付与します:
// to user Enforcer::addPermissionForUser('eve', 'articles', 'read'); // to role Enforcer::addPermissionForUser('writer', 'articles','edit');ユーザーのロールを削除します:
Enforcer::deleteRoleForUser('eve', 'writer');ユーザーのすべてのロールを削除します:
Enforcer::deleteRolesForUser('eve');単一のロールを削除します:
Enforcer::deleteRole('writer');権限の削除:
Enforcer::deletePermission('articles', 'read'); // returns false if the permission does not exist (aka not affected).ユーザーまたはロールの権限の削除:
Enforcer::deletePermissionForUser('eve', 'articles', 'read');ユーザーまたはロールのすべての権限の削除:
// to user Enforcer::deletePermissionsForUser('eve'); // to role Enforcer::deletePermissionsForUser('writer');ユーザーを取得または、ロールのすべての権限:
Enforcer::getPermissionsForUser('eve'); // return arrayユーザーが特定の権限を持っているかどうかを確認する
Enforcer::hasPermissionForUser('eve', 'articles', 'read'); // true or falseMore
API Casbin API (https://casbin.org/) を参照してください。 docs/en/management-api)。
\tauthz\middleware\Basic::class middleware:
Route::get('news/:id','News/Show') ->middleware(\tauthz\middleware\Basic::class, ['news', 'read']);が付属しています。
以上がThinkphp 6.0 認証プラグイン Think-authz のインストールと使用についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。