はじめに
こんにちは、Ebata です。
認証機能とかっこよく書きましたが、要するにログイン機能の事です。この記事では、Laravel8でログイン機能を簡単に実装できるjetstreamというライブラリを紹介します。
詳しい説明は省きますが、jetstreamを使用する事で以下の機能が自動で実装できます。
- ログイン機能
 - 会員登録機能
 - パスワードメール確認
 - ログイン失敗時のロック
 - プロフィール情報編集機能
 - 2段階認証
 
とりあえず、ここまで実装するのが本記事の目標です。
(もっと詳しく知りたいという方は、こちらの記事を読んでみるといいと思います。僕もこれで学びました)
【Laravel】初めての認証(Laravel8でJetstreamを使う)
環境
MacOS(Windowsでも LinuxでもOK)
Laravel8.x
Composer2.0
jetstreamとは
PHPのフルスタックフレームワーク、Laravelで利用可能なAuthenticateライブラリ。いわゆるログイン認証機能を実装してくれるライブラリです。
会員登録などの機能も備えているので、とりあえずログイン機能を実装するのであれば事足ります。
jetstreamはCSSフレームワークとして、tailwindを利用しています。もしカスタマイズなどする際は参照すると良いでしょう。
また、似たようなライブラリにbreezeというものもありますが、そちらは別記事として書きたいと思います。
インストール方法
では、早速インストールしていきます。
まだLaravelプロジェクトを作成していない方は、作成するディレクトリに移動して、以下のコマンドを実行してください。
$ composer create-project laravel/laravel sample_login
これでLaravelプロジェクトが作成できました。
ちなみに、sample_loginの部分はプロジェクト名なので、適当に直してください。
続いて、プロジェクトディレクトリに移動して、以下のコマンドでjetstreamをインストールします。
$ composer require laravel/jetstream
jetstreamでは、UIの表示に使用するJavaScriptのパッケージが2種類あります。
一般的に使われているlivewireと、React.jsやVue.jsと互換性のあるinertia。
今回は特にReact.jsなどを使う予定はないので、livewireをインストールします。
$ php artisan jetstream:install livewire
ちなみに、inertiaをインストールしたい場合は以下のコマンドを実行してください。
$ php artisan jetstream:install inertia 
JSパッケージのインストールが完了したら、続いてマイグレーションを行います。
マイグレーションとは、SQL文を直接書かずにマイグレーションファイルからデータベースを操作する作業のことです。今はとりあえず、会員登録に必要なデータを入れる箱を作る作業だと覚えればOK。
以下のコマンドを実行してください。
$ php artisan migrate
これでマイグレーションが完了しました。
続いて、JSとCSSをビルドしていきます。ビルドは組み立てるという意味です。
以下のコマンドを実行してください。
npm install && npm run dev
たまにlaravel mixの途中でエラーを吐くことがありますが、再度npm run devを実行するとすんなり行くことがあります。(なんだったんだろう)
また、Dockerなどでnpm command not foundが吐かれる場合は、先に以下の2つを実行してください。
$ apt update
$ apt install nodejs npm
ローカルでnpm command not foundを吐かれた場合は、パッケージマネージャであるHomebrewなどからnodeをインストールしてください。
こちらからもインストールできます。
動作確認
ここまで出来たら、動作確認をします。
ローカルの場合は、以下のコマンドを実行してサーバーを起動してください。
$ php artisan serve
[http://localhost:8000]を開いて、Laravel8の初期画面を表示させてください。
右上にLoginとRegisterが表示されていれば、今回のミッションはクリアです。お疲れ様でした。
ちなみに、Loginがログインページへのリンク、Registerが新規会員登録ページへのリンクです。