前の章では、Laravelの認証プロセスについて学びました。この章では、Laravel での承認プロセスについて説明します。
Laravel の承認プロセスについてさらに学習する前に、認証と承認の違いを理解しましょう。
認証では、システムまたは Web アプリケーションは、提供された資格情報を通じてユーザーを識別します。資格情報が有効であることが判明した場合は認証され、そうでない場合は認証されません。
認可
では、システムまたはWebアプリケーションは、認証されたユーザーがアクセスまたはリクエストを試みているリソースにアクセスできるかどうかを確認します。言い換えれば、要求されたリソースに対する権限とアクセス許可をチェックします。リソースにアクセスできることが判明した場合は、承認されていることを意味します。したがって、
認証
にはユーザー資格情報の有効性のチェックが含まれ、認可には認証されたユーザーが持つリソースに対する権限とアクセス許可のチェックが含まれます。Laravelの認可メカニズム
Gates
と Policies という 2 つの主要な方法を含む承認のためのシンプルなメカニズムを提供します。ゲートとポリシーの作成
ゲートは、ユーザーが指定されたアクションを実行する権限を持っているかどうかを判断するために使用されます。これらは通常、ゲート ファサードを使用して
で定義されます。ゲートは、認可メカニズムを実行するために宣言された関数でもあります。
ポリシーは配列内で宣言され、認可メカニズムを使用するクラスとメソッド内で使用されます。
次のコード行は、Laravel Web アプリケーションでユーザーを承認するためにゲートとポリシーを使用する方法を説明します。この例では、
boot
関数がユーザーの承認に使用されることに注意してください。
<?php namespace App\Providers; use Illuminate\Contracts\Auth\Access\Gate as GateContract; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; class AuthServiceProvider extends ServiceProvider{ /** * The policy mappings for the application. * * @var array */ protected $policies = [ 'App\Model' => 'App\Policies\ModelPolicy', ]; /** * Register any application authentication / authorization services. * * @param \Illuminate\Contracts\Auth\Access\Gate $gate * @return void */ public function boot(GateContract $gate) { $this->registerPolicies($gate); // } }
以上がLaravel - 認可の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。