ホームページ >PHPフレームワーク >ThinkPHP >ThinkPHP6 を使用して権限制御を実装する方法
インターネットがますます発展するにつれて、多くの Web サイトではユーザーのアクセス許可を制御する必要があります。アクセス許可制御により、システムのセキュリティを保護し、権限のないユーザーによるシステム リソースへのアクセスを防ぐことができます。これは商用アプリケーションでは非常に重要です。 PHP を使用してアプリケーションを開発する場合、ThinkPHP フレームワークはシンプルなソリューションを提供します。
ThinkPHP6 フレームワークは、RBAC (ロールベースのアクセス制御) に基づいた権限制御機能をユーザーに提供します。この記事では、権限の設定方法、コントローラーやビューでの権限の使用方法、権限制御情報をデータベースに保存する方法など、ThinkPHP6 を使用して権限制御を実装する方法を紹介します。
1. 基本概念
アクセス許可制御の実装方法を紹介する前に、いくつかの基本概念を理解する必要があります:
2. 権限の設定
ThinkPHP6 では、すべての権限の構成情報は appcontroller dmin.php に保存されます。ファイルの真ん中。構成ファイルには、パブリック アクセス許可とプライベート アクセス許可の 2 種類のアクセス許可があります。
パブリック権限とは、システムのホームページなど、すべてのユーザーがアクセスできるリソースと操作を指します。プライベート権限とは、特定の役割または権限を持つユーザーのみがアクセスできるリソースと操作を指します。
すべてのパブリック アクセス許可を appcontroller dmin.php ファイルに追加します:
return [ // 公共权限 'public' => [ 'index/index', 'index/home' ], // 私有权限 'private' => [] ];
プライベート アクセス許可については、次のアクセス許可を追加する必要があります。 dmin.php ファイルのプライベート権限グループに追加します。
たとえば、AdminController コントローラーの getUserList メソッドへのアクセスを許可する「user」という名前の権限を追加できます:
// 私有权限 'private' => [ 'user' => [ 'AdminController/getUserList' ] ]
3. コントローラーとビューでの権限の使用
if (Auth::check('user')) { // 执行用户有权访问的操作 } else { // 返回无权访问页面 }
$role = Auth::getRole();
<!-- 如果用户有'user'权限,则显示下面的按钮 --> @can('user') <button type="button" class="btn btn-sm btn-primary">操作</button> @endcan4. 権限制御情報をデータベースに保存する権限制御をより柔軟にするために、権限情報をデータベースに保存して管理を容易にすることができます。 . および修正。 ThinkPHP6 は、データベースから許可情報を簡単に読み取って検証できる Auth クラスを提供します。 データベースに権限を設定する場合、4 つのテーブルを作成する必要があります:
protected $table = [ 'auth' => 'auth', 'users' => 'users', 'roles' => 'roles', 'permissions' => 'permissions', 'role_permissions' => 'role_permission' ];上記は、ThinkPHP6 を使用して権限制御を実装するプロセス全体です。以上の操作により、RBACベースの権限制御を簡単に実装することができ、プロジェクトのセキュリティと制御性を向上させることができます。
以上がThinkPHP6 を使用して権限制御を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。