前のパートに戻る 完了して次のパートへ  

  2-2 Authの導入


この章ではユーザーの新規登録・ログイン機能を開発していきます。

Laravelでは簡単にユーザーの新規登録・ログイン機能を実装する事ができる仕組みが存在します。

コマンドプロンプトで下記コマンドを入力してください。

$ php artisan make:auth

この様に表示されればOKです。

$ php artisan make:auth
Authentication scaffolding generated successfully.

コマンドプロンプトで php artisan serve と入力し、

Google Chromeなどのブラウザでhttp://127.0.0.1:8000と入力すると、

画面右上に、LoginとRegisterという項目が追加されている事がわかるかと思います。

Registerをクリックすると、ユーザー登録画面が表示されます。 

Loginをクリックすると、ログイン画面が表示されます。

php artisan make:authというコマンドだけで、

  • ユーザー登録機能
  • ログイン機能
  • パスワードリセット機能
  • ログイン情報保存機能
  • バリデーション(入力の有無、メールアドレスかどうかの判定)

がまとめて追加されている状態になります。

ユーザー登録を実施してみる


試しにRegisterで適当にユーザーを作成してみます。

下記の様なユーザー情報を入力後、Registerをクリックします。

  • 名前・・test
  • メールアドレス・・ [email protected]
  • パスワード・・ password123

クリック後、下記のような画面にリダイレクトされればOKです。

画面右上に、作成したユーザー名(今回はtest)と表示されています。

PHPMyAdminの画面でも、userテーブルの中に作成したユーザー情報が表示されているのがわかるかと思います。

ここまでで、ユーザー登録・ログイン機能を実装する事ができました。

以下は余談になります。

興味があればさっと目を通してもらえればと思います。

Authで生成されているファイル


ユーザー登録・ログイン機能を作成するために下記コマンドを使用しました。

$ php artisan make:auth

auth機能を使う事で様々なファイルが生成されています。

Authで生成されるルーティング

ファイルパス

techpit-match
└── routes
    └── web.php

ルーティングファイル内に下記が追記されます。

Auth::routes();

この1行によって、最終的にvendor/laravel/framework/src/Illuminate/Routing/Router.php の以下のメソッドが呼ばれています。

ログイン、ログアウト、登録、パスワードリセット、などの記載がされている事がわかるかと思います。

Authで生成されるコントローラー

上記のルーティングファイルにもコントローラーの記載がありますが、 下記のフォルダ・ファイルが新たに生成されています。

techpit-match
└── app
    └── Http
        └──Controllers
            └──HomeController.php
            └──Auth
                └──ForgotPasswordController.php
                └──LoginController.php
                └──RegisterController.php
                └──ResetPasswordController.php

ルーティングファイルによってこれらのコントローラーが呼び出されていることになります。

Authで生成されるモデル

ログイン情報をデータベースに読み書きするために、モデルも生成されます。

techpit-match
└── app
    └── User.php

Authで生成されるビュー

authのコマンドを入力するだけで、実に6つのビューファイルを生成しています。

techpit-match
└── resources
    └── views
        └── auth
            └── passwords
                └── email.blade.php
                └── reset.blade.php
            └── login.blade.php
            └── register.blade.php
        └── layouts
            └── app.blade.php
        └── home.blade.php

こちらの画面のloginやregisterという箇所は、layouts/app.blade.phpが表示されています。

  • ログインは auth/login.blade.php
  • ユーザー登録は auth/register.blade.php
  • ログイン後のホーム画面は home.blade.php

がそれぞれ表示されています。

正確には、ルーティングファイルでそれぞれのURLへアクセスがきたら、 RegisterControllerやLoginControllerへ振り分けられ、 各コントローラからそれぞれのビューファイルを表示するようにしています。

マルチログイン機能について


こちらも余談ではありますが、

auth機能を拡張することで、

管理側とユーザー側など複数のログイン機能を実装することもできます。

今回の講座では解説しませんが、興味があれば下記記事も参考にしてみてください。

【Laravel】マルチログイン(ユーザーと管理者など)機能を設定してみた【体験談】

議論
0 質問
このコースの評価は?