Laravelこんにちは、小林です。今回はLaravelの認証機能をカスタマイズ(Eloquentドライバ)の方法です。メールアドレスとパスワード以外に参照する項目を追加するのは比較的簡単に出来ると思うのですが、少し複雑な条件(例えば複数テーブルを参照するなど)でユーザを取得したい場合はひと手間かかります。そのあたりを書いていきたいと思います。参照したい項目を追加してあげます。以下であれば、active項目が1である条件が追加されます。'active');}もう少し複雑な認証をしたい場合EloquentUserProviderをカスタマイズして使っていきます。認証用サービスプロバイダ作成まず、独自認証するためのサービスプロバイダを作成します。CustomAuthServiceProvider\Illuminate\Auth\EloquentUserProviderを継承して、retrieveByCredentialsとvalidateCredentialsをオーバーライドします。retrieveByCredentialsでは、Eloquentを操作します。リレーションや条件を追加しましょう。validateCredentialsでは、独自の認証を追加します。判定結果(Boolean)を戻り値として返してあげればOKです。validateCredentialsを修正します。次にこのプロバイダを登録します。ここでは「custom_auth」という名前で登録しています。登録したら、ドライバとして使用するようにauthのconfigを修正します。利用して認証処理が行われるようになります。これで終わりと行きたいところですが、このままだとパスワード再発行時の処理でCustomAuthServiceProviderが使われません。いうことで、パスワード発行のところを修正していきます。PasswordBrokerの作成まずBrokerを作成します。}}__constructをオーバーライドして、$usersの型をCustomAuthServiceProviderにします。次に、BrokerManagerを作成します。}}ここでは、__resolveをオーバーライドして、CustomPasswordBrokerを使うようにします。ServiceProviderの作成そして、作成したBrokerManagerを使用するためのサービスを作成します。configの「providers」を修正して、PasswordResetServiceProviderの代わりにCustomPasswordResetServiceProviderを使用するようにします。これで、パスワード再発行も「CustomAuthServiceProvider」を使って行われるようになりました。まとめこのあたりの認証カスタマイズの情報があまり多くないように感じたので書いてみました。複数テーブルを参照する程度であればEloquentUserProviderをカスタマイズして十分対応できるのかなと思います。機会があればドライバ自体を作成する方法も試してみたいですね。...新年あけましておめでとうございます。本年もどうぞ...2019-10-23LaravelでCSVファイルのインポート・エクスポートをやってみた前回びくついていた健康診断ですが無事終了しました。加藤です...2019-09-11Laravel6がやってきた!5.8から6へアップグレードこんにちは。Laravel6がやってきました!...2019-08-28Laravel6に備えて5.5から5.8へアップグレードこんにちは。Laravel6がアナウンスされま...2019-07-10とても簡単!自作のアプリにREPLを実装する方法こんにちは。(1)月別アーカイブ執筆者リストid:xkatoid:arms_hayamaid:arms-nakamuraid:hide_san99id:masakikojimaプロフィール株式会社アームズのエンジニアブログです。読者になるはてなブログをはじめよう!hide_san99さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。