インターネットがますます発展するにつれて、多くの 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> @endcan
protected $table = [ 'auth' => 'auth', 'users' => 'users', 'roles' => 'roles', 'permissions' => 'permissions', 'role_permissions' => 'role_permission' ];
以上がThinkPHP6 を使用して権限制御を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。