概念として理解が難しい、認証について整理していきたいと思います。
まず、認証とは何か。
簡単に述べると、「誰なのか」を判断することです。
認証をする際に、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, ], ],