thinkphp で Casbin を権限制御ミドルウェアとして使用する
PHP-Casbin は、さまざまなアクセス制御モデルに基づいた権限管理をサポートする、強力かつ効率的なオープンソースのアクセス制御フレームワークです。
Think-Casbin は、ThinkPHP5.1 用に特別にカスタマイズされた Casbin 拡張パッケージで、開発者が thinkphp プロジェクトで Casbin を簡単に使用できるようにします。
インストール
thinkphp プロジェクトを作成します (利用できない場合):
composer create-project topthink/think=5.1.* tp5
ThinkPHP プロジェクトに、Think-Casbin 拡張機能をインストールします:
composer require casbin/think-adapter
リソースを公開します:
php think casbin:publish
これにより、モデル設定ファイル config/casbin-basic-model.conf と Casbin 設定ファイル config/casbin.php が自動的に作成されます。
データ移行:
Think-Casbin はデフォルトで Casbin のポリシー (Policy) をデータベースに保存するため、データベースのテーブル情報を初期化する必要があります。
実行する前に、データベース接続情報が正しく設定されていることを確認してください。Casbin のデータベース接続情報やテーブル名を個別に変更する必要がある場合は、config/casbin.php で設定を変更できます。
php think casbin:migrate
これにより、Casbin のポリシー テーブル casbin_rule が自動的に作成されます。
ミドルウェア
ThinkPHP バージョン 5.1.6 以降、ミドルウェア サポートが正式に導入されます。
コマンド ライン命令を使用してミドルウェアをすばやく生成できます
php think make:middleware Authorization
この命令により、application/http/middleware ディレクトリに認可ミドルウェアが生成されます。
ミドルウェアで、現在のユーザー名、URI、リクエストメソッドを取得し、Casbin を介して権限を確認します:
<?php namespace app\http\middleware; use Casbin; use think\facade\Session; class Authorization { public function handle($request, \Closure $next) { // 当前登录用户名,这里以session为例 // $user = Session::get('user_name') ?: 'test_user'; $user = Session::get('user_name'); $url = $request->url(); $action = $request->method(); if (!$user){ return response()->data('Unauthenticated.')->code(401); } if (!Casbin::enforce($user, $url, $action)) { return response()->data('Unauthorized.')->code(403); } return $next($request); } }
Casbin モデル設定
config \ casbin-basic-model.conf 設定ファイル:
[request_definition] r = sub, obj, act [policy_definition] p = sub, obj, act [policy_effect] e = some(where (p.eft == allow)) [matchers] m = r.sub == p.sub && keyMatch2(r.obj, p.obj) && r.act == p.act
Verification
認可を実行する前に、いくつかのデフォルト ポリシーをデータベース casbin_rule テーブルに追加します:
ルーティングとそのミドルウェアを追加します:
Route::group('users', function () { Route::get('', function () { return 'Users data.'; }); Route::get('/:id', function ($id) { return 'User: '.$id; }); })->middleware(\app\http\middleware\Authorization::class);
まず、ユーザーにログインし、ユーザー名を SESSION に保存します。/users、/users/1 にアクセスして、権限。
推奨チュートリアル:「TP5」
以上がthinkphp で Casbin を権限制御ミドルウェアとして使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









ThinkPHP プロジェクトを実行するには、Composer をインストールし、Composer を使用してプロジェクトを作成し、プロジェクト ディレクトリに入り、php bin/consoleserve を実行し、http://localhost:8000 にアクセスしてようこそページを表示する必要があります。

ThinkPHP には、さまざまな PHP バージョン向けに設計された複数のバージョンがあります。メジャー バージョンには 3.2、5.0、5.1、および 6.0 が含まれますが、マイナー バージョンはバグを修正し、新機能を提供するために使用されます。最新の安定バージョンは ThinkPHP 6.0.16 です。バージョンを選択するときは、PHP バージョン、機能要件、コミュニティ サポートを考慮してください。最高のパフォーマンスとサポートを得るには、最新の安定バージョンを使用することをお勧めします。

ThinkPHP フレームワークをローカルで実行する手順: ThinkPHP フレームワークをローカル ディレクトリにダウンロードして解凍します。 ThinkPHP ルート ディレクトリを指す仮想ホスト (オプション) を作成します。データベース接続パラメータを構成します。 Webサーバーを起動します。 ThinkPHP アプリケーションを初期化します。 ThinkPHP アプリケーションの URL にアクセスして実行します。

Laravel フレームワークと ThinkPHP フレームワークのパフォーマンスの比較: ThinkPHP は、最適化とキャッシュに重点を置いて、一般に Laravel よりもパフォーマンスが優れています。 Laravel は優れたパフォーマンスを発揮しますが、複雑なアプリケーションの場合は、ThinkPHP の方が適している可能性があります。

「開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法」 インターネット技術の急速な発展に伴い、Web アプリケーションには、多数の同時リクエストと複雑なビジネス ロジックを処理するための要件がますます高まっています。システムのパフォーマンスとユーザー エクスペリエンスを向上させるために、開発者は多くの場合、電子メールの送信、ファイルのアップロードの処理、レポートの生成など、時間のかかる操作を実行するために非同期タスクの使用を検討します。 PHP の分野では、人気のある開発フレームワークとして ThinkPHP フレームワークが、非同期タスクを実装するための便利な方法をいくつか提供しています。

ThinkPHP のインストール手順: PHP、Composer、および MySQL 環境を準備します。 Composer を使用してプロジェクトを作成します。 ThinkPHP フレームワークと依存関係をインストールします。データベース接続を構成します。アプリケーションコードを生成します。アプリケーションを起動し、http://localhost:8000 にアクセスします。

ThinkPHP は、キャッシュ メカニズム、コードの最適化、並列処理、データベースの最適化などの利点を備えた高性能 PHP フレームワークです。公式パフォーマンステストでは、1秒あたり10,000以上のリクエストを処理できることが示されており、実際のアプリケーションではJD.comやCtripなどの大規模なWebサイトやエンタープライズシステムで広く使用されています。

ThinkPHP6 と Swoole をベースとした RPC サービスがファイル転送機能を実装 はじめに: インターネットの発展に伴い、ファイル転送は私たちの日常業務においてますます重要になってきています。この記事では、ファイル転送の効率化とセキュリティを向上させるために、ThinkPHP6とSwooleをベースとしたファイル転送機能を実現するRPCサービスの具体的な実装方法を紹介します。 WebフレームワークとしてThinkPHP6を使用し、SwooleのRPC機能を利用してサーバー間のファイル転送を実現します。 1. 環境基準
