Laravelのミドルウェアをマンガで解説【初心者のためのLaravel超入門講座】

Laravel 入門講座

Laravel超入門講座、今回はミドルウェアについて解説していきます。

ミドルウェアとは、条件を満たしていない訪問者がページにアクセスできなくしたりするシステム。

たとえば、特定のページを管理者ユーザーしかアクセス不可に設定できます。

ただ、初めてミドルウェアを耳にする時には、これだけだとイマイチよく分からないですよね。

Junko
Junko

40代でプログラミングを始めた わたしも最初は、なんだかよくわかりませんでした。

そこで、「ググって説明読んだけど、分からなかった」という方のために、マンガでミドルウェアを解説してみました^^

Laravelのミドルウェアをマンガで解説

ミドルウェアとは

というわけで、なんとなく、ミドルウェアのイメージをつかんでいただけたでしょうか?

もう少しちゃんと解説しますと、ミドルウェアとは訪問者のリクエストに対して、ルーターとコントローラーの間にたって処理を行うメカニズムです。

通常であれば、ルーターが「このページにきたら、このコントローラーに処理をお願いしよう」と、処理を振り分けます。

ですがもしコントローラーが処理を実行する前に認証などの処理を行いたい場合は、ミドルウェアを使います。

ミドルウェアが入るLaraveolのフロー

こうすることで、特定のユーザーのみがページを見れるようにする、といったことが可能になるのです。

Laravelの認証用ミドルウェアの設定方法

Laravelでは、【認証】という最もよく使うミドルウェアを手軽に利用できるようになっています。

認証は、会員情報を登録したり、ログインしたりする機能のことですね。

まずは認証機能の設定方法を解説します。

①インストールを行う

Laravelのプロジェクトをインストールした後、ui(ユーザインターフェス)機能を組み込みます。

Laravelをインストールしたディレクトリで、次のコマンドを入力します。

次に、このui 機能を使って、認証機能のひな形ファイルを作成してもらいます。

下記のコマンドを実行します。

auth とは、認証の意味です。

なお、上記はbootstrapを使って設定するコマンドですが、もしも vueやreactを使いたい場合には、次のようにします。

【vue】

【react】

②Webページを見てみる

これで認証機能が追加されました。

実際に、Webのページも見てみましょう。

Laravelのトップページを表示させます。

次にURLに【/home】をつけて /home ページにアクセスしようとすると、ログインページに飛ばされるはずです。

つまり、/homeにアクセスする前に認証を行わなければならないようになっています。

実際に会員情報登録してからログインをすると、/homeページが表示されます。

登録したデータは、laravelに紐づいたデータベースに保存されます。

③ファイルを確認する

認証機能は、実際のファイルではどのように書かれているか見てみましょう。

laravelをインストールしたフォルダの ルート設定ファイル(web.php)を見てみると、次のようにあります。

【Web.php】

これは、/home ページにアクセスするときに HomeController の index メソッドが処理を実行するということ。

HomeControllerを見てみると、下記のコードがあります。

【HomeController】

はい、ここに、middlewareが入ってます。

このコードによって、 /home を表示したければ認証を受ける必要が出てきます。

つまりログインした状態でなければ、/home にアクセスできないようになっています。

さいごに

今回のまとめ

  • middlewareによって、認証などの処理が行える
  • Laravelでは、認証用のmiddlewareを手軽に追加できる

Laravelに準備されている認証機能以外でも、自分が好きなミドルウェアを設定できます。

ミドルウェアを作成する方法については、こちらの記事を参考にしてください。

なおLaravelのコードの組み方をいちから学びたい場合には、【Laravelの教科書】という学習サイトもご用意しています。

こちらは、Laravelをいちから学びながら、会員制のフォーラムサイトを作成していける内容です。

40代でプログラミングをはじめた わたしは、今回のミドルウェアのような基礎的な部分も知らず、苦労しました。そこで、とことん分かりやすいLaravel教材を作ろうと思い、こちらの学習サイトを構築しました。

詳しくは、こちらのご案内ページを見てみてくださいね。

Laravelの教科書について見てみる

Junko
Junko

既存の教材ではLaravelが難しすぎた、と思ったら、試してみてくださいね。基礎編部分は無料です。

コメント

タイトルとURLをコピーしました