Laravelの認証を整理 | guard,provider

概念として理解が難しい、認証について整理していきたいと思います。

まず、認証とは何か。
簡単に述べると、「誰なのか」を判断することです。

認証をする際に、2つの機能を紹介します。
guardとproviderです。

guardは、認証の方法について定義します。具体的には、sessionかtokenなのか。

providerは、認証の情報(「誰なのか」の情報)の提供場所を定めます。

guard, providerの設定はcongif > auth.phpで設定することが出来ます。
defaultで認証情報が設定されていますが、自由に追加することが出来ます。

追加する機会として、メジャーなのは「管理者権限を追加」などがあると思います。

guradの設定をみていくと、
下記だと、web、apiというguradが存在しています。
webの方に着目すると、
・session方式で、認証を実行する
・認証の情報提供(provider)はusersにて実行する
(providerについては後述)

     'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
            'hash' => false,
        ],
    ], 

providerは、
上記で設定したusersの内容が設定されています。
・eloquent方式で、users情報を提供する
・提供場所は、App\Models\User::classの情報

     'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,
        ],
    ], 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です