はじめに
Laravelでログイン機能を実装する際、膨大な数の方法が存在するため、初心者の方にとっては混乱してしまうかもしれません。
しかし、安心してください。
今回の記事では、Laravel Breezeというフレームワークを使用することで、簡単に安全なログイン機能を実装する方法を解説します。
これにより、初心者の方でも簡単にログイン機能を実装できるようになります。
この記事を読むことで、ログイン機能の実装方法に悩むことがなくなり、開発の効率が向上することでしょう。
本記事の対象者
- Laravelのログイン機能の実装方法が多すぎて、何から手をつけていいかわからない方
- Laravelでのログイン機能の具体的な実装方法を知りたい方
- Laravelのログイン機能の全体像を把握したい方
Laravelのログイン機能の全体像について
まずは、Laravelにどのようなログイン機能の実装方法があるのかの全体像を説明したいと思います。
大きく分けると、セッション認証とトークン認証に分かれます。
どのような違いがあるのかについて説明します。
セッション認証はログイン情報をセッションに保存し、ブラウザに向けてクッキーを発行します。このクッキーにはセッションIDという一意なIDが含まれます。
以降は、セッションIDからセッションデータ(ユーザーのデータ)を取り出し、データベースと照合し、認証します。
トークン認証は通常ブラウザにアクセストークンを保持し、リクエストの度にアクセストークンをサーバーに送ることで、サーバー側でアクセストークンをチェックし、認証します。
これらは以下のようなメリット・デメリットがあると筆者は考えています。
【セッション認証】
- メリット・・・ログアウトされると、古いセッションIDはログイン時に使えなくなるため、安全性が高い
- デメリット・・・データベースでログイン情報を照合するため、サーバーに負荷がかかる
【トークン認証】
- メリット・・・トークンを認証しているので、サーバーに負荷がかからない
- デメリット・・・ログアウトされ、破棄された後のアクセストークンでの認証が通ってしまうため、安全性がセッション認証には劣る。また、アクセストークンをブラウザに保持する関係上、ローカルストレージには保持しないことや盗まれた場合の対策などを考える必要がある
それでは、それぞれで具体的にはどのような実装方法があるのかを見ていきます。
【セッション認証】
- Laravel Breeze
- Laravel Jetstream
- Laravel Fortify
【トークン認証】
- Laravel Passport
- Laravel Sanctum
ただし、Laravel SanctumのSPA認証などではトークン認証とセッション認証2つ用意されていたりなどします。
使い分けとしては、Laravel単体のプロジェクトなどはセッション認証、Laravel × Vue.jsなどの組み合わせでLaravelをAPIとして使うような場合はトークン認証を使うというのが一般的です。
このようにケースバイケースでどのような認証方法を採用するかを決めていきます。
今回は初学者向けに記事を作成していますので、最も基本的な実装方法であるLaravel Breezeを例にとって説明していきます。
Laravel Breeze
まず、Laravel Breezeとは何か?というところから簡単に説明していきます。
Laravel Breezeは、ログインやユーザー登録、パスワードリセット、メール確認、パスワード確認など認証に必要となる最小限の機能を備えたLaravelの認証パッケージです。
フロントにはTailwind CSSが使われており、簡単にそこそこイケてるデザインのログイン画面をサクッと作れてしまうといったものです。
それでは、どのように実装していくか見てみましょう。
インストール
Laravelアプリケーションの作成、データベースの設定などは既に済ませているものとして説明していきます。
まずはLaravel Breezeをインストールしましょう。
composer require laravel/breeze --dev
必要なファイルのインストール
次に、breeze:installコマンドを叩きます。
php artisan breeze:install
これによって、Breezeに必要なビューやコントローラ、ルートを自動的に組み込んでくれます。
bladeかreactかvueかapiかなど聞かれるので、今回はbladeとしておきましょう。
また、ダークモードやPHPUnitなどについて聞かれるのでお好みで選択しておいてください。
それでは、マイグレートとnpm installなどもしておきましょう。
php artisan migrate
npm install
動作確認
これで必要な準備は整ったはずです。
最後にサーバーを起動して確認してみます。
php artisan serve
/loginにアクセスしてみましょう。

うまくログイン画面が表示されていますね!
実際にDBにユーザーを用意して、ログインしてみてください。
うまくログインできれば成功です。
Laravel Breezeを使うと、こんなにも簡単にログイン機能を作れてしまいます。
他にも様々なログイン機能の実装方法があるので、また別の記事で紹介していこうと思います。
最後に
今回の記事では、Laravelのログイン機能の全体像を解説しました。
また、Laravel Breezeを使用することで、初心者の方でも簡単に安全なログイン機能を実装できることを解説しました。
これでログイン機能の実装方法に悩むことが少なくなり、開発の効率が向上することでしょう。
是非、Breezeを使ってログイン機能を実装してみてください。
楽しい開発ライフを送ることができることを願っています。
ではでは😆
コメント