Laravel-authorization

提供:Dev Guides
移動先:案内検索

Laravel-認証

前の章では、Laravelでの認証プロセスについて検討しました。 この章では、Laravelでの認証プロセスについて説明します。

認証と承認の違い

Laravelでの承認プロセスについてさらに学習する前に、認証と承認の違いを理解しましょう。

  • 認証*では、システムまたはWebアプリケーションは、ユーザーが提供する資格情報を通じてユーザーを識別します。 資格情報が有効であることが判明した場合、それらは認証されます。
*authorization* では、システムまたはWebアプリケーションは、認証されたユーザーがアクセスしようとしているリソースにアクセスできるか、または要求を行うことができるかどうかを確認します。 つまり、要求されたリソースに対する権限と許可をチェックします。 リソースにアクセスできることがわかった場合は、許可されていることを意味します。

したがって、 authentication にはユーザー資格情報の有効性のチェックが含まれ、 authorization には認証済みユーザーが持っているリソースに対する権限と許可のチェックが含まれます。

Laravelの承認メカニズム

Laravelは、2つの主要な方法、つまり GatesPolicies を含む簡単な認証メカニズムを提供します。

ゲートとポリシーの作成

ゲートは、指定されたアクションの実行がユーザーに許可されているかどうかを判断するために使用されます。 それらは通常、Gateファサードを使用して App/Providers/AuthServiceProvider.php で定義されます。 ゲートは、承認メカニズムを実行するために宣言される関数でもあります。

ポリシーは配列内で宣言され、承認メカニズムを使用するクラスおよびメソッド内で使用されます。

次のコード行は、Laravel Webアプリケーションでユーザーを承認するためにGatesとポリシーを使用する方法を説明しています。 この例では、ユーザーを認証するために 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);
     //
   }
}