ホームページ  >  記事  >  PHPフレームワーク  >  Laravelの許可方法について話しましょう

Laravelの許可方法について話しましょう

PHPz
PHPzオリジナル
2023-04-19 10:07:46810ブラウズ

Laravel は、多くの便利な機能を備えた非常に人気のある PHP フレームワークです。これには「権限」と呼ばれる機能が含まれます。 Laravel では、権限は開発者がアプリケーションのアクセス制御システムを確立するのに役立ち、許可されたユーザーのみが特定の API エンドポイント、ページ、または操作にアクセスできるようにします。次にLaravelにおける許可方法を紹介します。

  1. ロールと権限

Laravel では、権限とロールは関連する概念です。ロールは、アプリケーションのさまざまな部分にアクセスできるさまざまなユーザー タイプです。権限とは、ユーザーがアクセスできる部分を制御するルールを指します。

Laravelでは、コマンドラインツールのArtisanを介してロールを作成できます。たとえば、次の職人コマンドを使用して「Administrator」という名前のロールを作成できます:

php artisan make:role admin

同様に、「Text Editor」という名前のロールを作成できます:

php artisan make:role editor

次に、これらを割り当てることができます。ユーザーに対する役割。

  1. 認可

Laravel では、認可を使用して、アプリケーションのさまざまな部分へのユーザー アクセスを制限できます。コントローラーで承認を定義して、承認されたユーザーのみが特定の操作を実行できるようにすることができます。

たとえば、管理者ユーザーのみにアクセスを許可する「AdminUsersController」という名前のコントローラーを作成できます。

php artisan make:controller AdminUsersController

次に、コントローラーのコンストラクターでコントローラーを作成する必要があります。 承認コンポーネントを定義します。

public function __construct()
{
    $this->authorize('admin');
}

許可されたユーザーがこのコントローラーにアクセスしようとしない場合、例外がスローされます。 LaravelのExceptionHandlerで例外ハンドラーを定義できます。

  1. 権限テーブル

Laravel では、アプリケーション関数の権限を保存する「permissions」という名前のテーブルを作成できます。次のコマンド ライン ツール Artisan を使用して、権限テーブルを作成できます。

php artisan make:model Permission -m

これにより、「Permission」という名前のモデル ファイルと、それに関連する移行ファイルが生成されます。

モデル ファイルには、ロールに関連付けられた権限を迅速に取得できる「role」と呼ばれるメソッドが含まれています。

public function roles()
{
    return $this->belongsToMany(Role::class);
}

その後、任意の数の権限を定義できます。

認可ルールは、アプリケーションの管理者ユーザーとしてコマンドラインからartisanを実行することで作成および管理できます。次に、これらの認可ルールを実際に適用する方法を見てみましょう。

  1. 認可ファサード

Laravel では、認可ファサードを使用して認可の使用を簡素化できます。ファサードを使用すると、現在ログインしているユーザーに操作またはリソースへのアクセス許可があるかどうかを簡単に確認できます。

たとえば、「Gate」ファサードを使用して、現在のユーザーに「edit-post」という名前の権限があるかどうかを確認できます。

if (Gate::allows('edit-post', $post)) {
    // 用户有权编辑帖子
}

「Gate」ファサードを使用して、次のこともできます。アプリケーションの特定のニーズをサポートするために、新しい承認ルールを定義します。

Gate::define('update-post', function ($user, $post) {
    return $user->id === $post->user_id;
});

この例では、投稿の所有者のみがそれを更新する権限を持つように、新しい承認ルールを定義します。

Laravel の権限システムは、アプリケーション開発者が承認されたユーザーがアクセスできるセクションや操作を簡単に制御できるようにする非常に便利な機能です。役割と権限を使用することで、強力で複雑なアクセス制御システムを簡単に構築できます。

つまり、Laravel フレームワークは、権限管理を実装するためのシンプルかつ強力な方法を提供し、アプリケーション開発者がユーザー ロールとそのア​​クセス権限をより簡単に定義および管理できるようにすることで、アプリケーション全体のセキュリティをより適切に制御できるようになります。

以上がLaravelの許可方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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