laravelのデフォルトの認証プロバイダはconfig/auth.phpを見ると
php
1 'providers' => [
2 'users' => [
3 'driver' => 'eloquent',
4 'model' => App\User::class,
5 ],
6 ],
のようになっているかと思います。
これはIlluminate\Auth\EloquentUserProvider
を認証プロバイダとして指定しています。
eloquentを使っているのなら用途に合わせてこのクラスを継承したクラスを作成してもよいですし、そうでなければIlluminate\Contracts\Auth\UserProvider
契約をimplementsして独自のクラスを作成してもOKです。
例えば
php
1 456
7 public function retrieveById($identifier);
は、Illuminate\Contracts\Auth\UserProvider
契約の一部です。ユーザidを受け取り、Illuminate\Contracts\Auth\Authenticatable
なオブジェクトを返すように実装していきます。
契約を守って実装するだけなので、実装するのに必要であれば結合する、必要なければ結合しないという方針で大丈夫です。
どのように実装するかは、既存のユーザプロバイダ(Illuminate\Auth\EloquentUserProvider
やIlluminate\Auth\DatabaseUserProvider
)を参考にしましょう。
実装したら作成したクラスをアプリケーション内の認証プロバイダとして使うように追加します。
このような登録作業はサービスプロバイダで行うと良いでしょう。登録方法は公式ドキュメントが参考になります。
config/auth.phpの変更もお忘れなく。
注意としては、Laravel5.2はprovider
メソッドでカスタムユーザプロバイダを追加するのに対し、5.1以前ではextend
メソッドで同様の操作が可能なことです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/23 12:14