質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

7501閲覧

Laravel 独自クラスでログイン認証のような動きをしたい

masaya_ohashi

総合スコア9206

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2018/01/25 07:13

前提・実現したいこと

php artisan make:authで生成されるUserとは別の、自分で作ったモデルの情報を元に認証を行い、その認証を通ったもののみが見れるページを作りたいです。

例)ユーザ登録しなくても、自分の学年、クラス、名字、名前、生年月日を入力すればログイン可能で、自分のクラスのページだけが見れる

発生している問題・エラーメッセージ

一から自分で作るには大きな処理なので、できればLaravelの認証の仕組みを流用したいのですが、そもそもそんなことが出来るのか、どこのリファレンスを調べればよいか、プラグインはないか等を探しています。

該当のソースコード

PHP

1// 【こういうことできたらいいなという希望のコード】 2$user = Auth::user(); 3if($user instanceof User) { 4 // Userの情報でログインしていればUserのモデル 5} 6else if($user instanceof Student) { 7 // Studentの情報でログインしていればStudentのモデル 8}

PHP

1// route/web.php 2// 【こういうことできたらいいなという希望のコード】 3Route::group(['middleware' => 'auth']) { 4 // 通常ログインしたユーザが見えるページ 5} 6Route::group(['middleware' => 'auth:Student']) { 7 // Studentでログインしたユーザが見えるページ 8}

試したこと

検索したりLaravelのIlluminate\Auth\Middleware\Authenticate等のコードを追っています。

補足情報(FW/ツールのバージョンなど)

Laravel5.4

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Laravelのログイン認証の仕組みを使って、独自のクラスでの拡張を行う場合は、config/auth.phpのprovidersでmodelを独自のものに変更したり、
LoginControllerで利用している、AuthenticatesUsersトレイトのattemptLoginやcredentialsあたりをオーバーライドすると、ユーザー名とパスワード以外の独自のデータ照合ができると思います。
認証のガードを複数定義すれば、あるガードで認証しているかどうかも判別できます。
Laravel 5.5 認証
Laravel5.4でマルチ認証(userとadmin)を実装する方法

投稿2018/01/25 07:28

aro10

総合スコア4106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masaya_ohashi

2018/01/25 07:31

うおおお!後者のリンクがまさにやりたかったやつです!Userのログインに使う項目やテーブルを変える方法は理解していたのですが、Userとは別に認証出来るクラスを「増やす」のを探していたのです。これならいけそうです!
aro10

2018/01/25 07:38

一点気をつける点としては、ブラウザでは基本的にドメイン毎に準備されるクッキーのデータでLaravelの認証を判定している都合上、1ブラウザで同時に複数のガード利用は競合するので注意が必要です。
masaya_ohashi

2018/01/25 07:39

了解です!今回の場合、平行してログインすることはないので大丈夫です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問