はじめに
こんにちは、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
が新規会員登録ページへのリンクです。