ホームページ  >  記事  >  PHPフレームワーク  >  Laravelでバックグラウンド権限を設定する方法(詳細な手順)

Laravelでバックグラウンド権限を設定する方法(詳細な手順)

PHPz
PHPzオリジナル
2023-04-03 19:20:481281ブラウズ

Laravel は、開発プロセスをスピードアップするための多くの便利さとツールを開発者に提供する人気の PHP フレームワークです。特に便利な機能の 1 つは、バックエンド管理権限システムです。 Laravel のバックエンド権限を設定すると、承認されたユーザーのみがアプリケーションの管理インターフェイスにアクセスできるようになります。この記事では、Laravelでバックグラウンド権限を設定する方法について説明します。

ステップ 1: 必要なソフトウェア パッケージをインストールする

Laravel でバックグラウンド権限を設定するには、次のソフトウェア パッケージをインストールする必要があります:

  • Laravel フレームワーク
  • Laravel Permission

Laravel Permission は、アプリケーションにパーミッション システムを簡単に追加できる、人気のあるパーミッション管理パッケージです。次のコマンドを使用して、composer パッケージ マネージャーを通じて Laravel プロジェクトにインストールできます:

composer require spatie/laravel-permission

インストールが完了したら、config/app.php にサービス プロバイダーを追加する必要があります。ファサード:

'providers' => [
    ...
    Spatie\Permission\PermissionServiceProvider::class,
],

'aliases' => [
    ...
    'Permission' => Spatie\Permission\Models\Permission::class,
    'Role' => Spatie\Permission\Models\Role::class,
],

ステップ 2: ルートとコントローラーを作成する

次に、アプリケーションのアクセス許可を管理するためのルートとコントローラーのセットを作成する必要があります。これらのルートは Web ルーティング ファイルで定義できます。例:

Route::group(['middleware' => ['auth']], function () {

    // 管理角色和权限
    Route::resource('roles', 'RoleController');
    Route::resource('permissions', 'PermissionController');

    // 管理用户角色分配
    Route::resource('users', 'UserController');
    Route::post('users/{user}/assign-roles', 'UserController@assignRoles')->name('users.assign.roles');
    Route::delete('users/{user}/remove-roles/{role}', 'UserController@removeRoles')->name('users.remove.roles');

});

この例では、4 つの異なるルートが定義されています:

  • roles: Usedアプリケーション内のロールを管理します。
  • permissions: アプリケーションの権限を管理するために使用されます。
  • users: アプリケーション内のユーザーを管理し、ユーザーにロールを割り当てるために使用されます。
  • assign-roles および remove-roles: アプリケーション内のユーザーのロールの割り当てと削除に使用されます。

次のステップでは、コントローラーを作成します。例:

php artisan make:controller RoleController

コントローラーでは、ルートに一致するメソッドを記述する必要があります。たとえば、ユーザーが roles ルートにアクセスすると、Laravel は RoleControllerindex メソッドを呼び出します:

public function index()
{
    $roles = Role::paginate(10);

    return view('roles.index', compact('roles'));
}

これによりリストが返されます。ロールビューを含むビューを作成し、Laravel ネストされたルーティングを使用してブラウザに送り返します。ビューでは、Laravel Blade テンプレート エンジンを使用してデータをレンダリングし、必要に応じてユーザーにフォームとボタンを表示します。

ステップ 3: アプリケーションのアクセス許可を定義する

アプリケーション管理領域へのユーザー アクセスを制限するには、どのロールがどのアクションを実行できるかを定義する必要があります。たとえば、完全なアクセス権を持つユーザーに管理者ロールを割り当て、記事の編集のみが可能な編集者ロールを別のユーザー セットに割り当てることができます。

Laravel Permission パッケージでは、Permission モデルと Role モデルを使用してこれらの権限を定義および管理できます。たとえば、「記事の編集」という権限を作成するには、次のコードを使用します。

use Spatie\Permission\Models\Permission;

$editArticles = Permission::create(['name' => 'edit articles']);

これにより、新しい権限が作成され、データベースに保存されます。これで、管理者や編集者などの他のロールに割り当てることができます。

ステップ 4: ミドルウェアを使用してルートを保護する

次に、authミドルウェアを使用して、管理ルートへのアクセスを制限する必要があります。このミドルウェアにより、ユーザーは保護されたルートにアクセスするためにログインする必要があります。

Laravel の Route::group メソッドを使用して、ルート定義をラップし、グループ全体にミドルウェアを適用できます。

Route::group(['middleware' => ['auth']], function () {
    // 受保护的路由
});

今度は、渡されたもののみを適用します。認証されたユーザーのみがこれらのルートにアクセスできます。

ステップ 5: Laravel 権限を使用してアクセスを承認する

最後に、Laravel 権限パッケージを使用して、どのロールが特定の操作を実行できるかを制御する必要があります。たとえば、「記事の編集」権限を持つユーザーのみがアプリケーションで記事を編集できるようにするには、次のコードを使用できます。

if(auth()->user()->can('edit articles')){
    // 可以编辑文章
} else {
    // 无权限
}

このコード スニペットは、現在認証されているユーザーが「記事の編集」権限を持っているかどうかを確認します。 「権限。ユーザーが権限を持っている場合は、関連する操作を実行できます。それ以外の場合、変更を加える権限はありません。

結論

Laravel でバックグラウンド管理者権限を設定するにはいくつかの手順が必要ですが、一度慣れてしまえば、Laravel 権限パッケージを使用してどのユーザーがどのアクションを実行できるかを簡単に制御できます。こうすることで、許可されたユーザーのみがアプリケーション管理領域にアクセスできるようになり、データのセキュリティが保護され、セキュリティ リスクが軽減されます。

以上がLaravelでバックグラウンド権限を設定する方法(詳細な手順)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。