LoginSignup
18
13

More than 3 years have passed since last update.

Laravel SailとLaravel Breezeでさくっとログイン機能を実装する

Posted at

Laravel SailとLaravel Breezeでさくっとログイン機能を実装する

Laravel Sailを利用するとLaravelのDocker開発環境が構築できます。
Laravel8からは更にLaravel BreezeやLaravel Jetstreamなどの認証機能やアプリケーションのスタータキットが提供されています。

これらを利用すると、ものすごく簡単にアプリケーションの開発がスタートできたので手順をまとめてみました。

Laravel Sailについて

Laravel Sailについてはこちらをご参考ください。

前提条件

Dockerがインストールされていること

> docker -v
> docker-compose -v

curlがインストールされていること

curl --version

インストールされていなかったらインストールします。

mac
> brew install curl
Linux/Windows(WSL)
> sudo apt install -y curl

Laravel Sailで開発環境構築

アプリケーション名(hoge_app)は任意の名前にできます。

> cd 任意のディレクトリ
> curl -s https://laravel.build/hoge_app | bash

# 途中で端末にパスワードを求められるので入力
Please provide your password so we can make some final adjustments to your application's permissions.

Password:

環境変数ファイル(.env)の設定を変更します。ここではMAIL_FROM_ADDRESS を変更してLaravelからメール送信ができるようにしています。

.env
-MAIL_FROM_ADDRESS=null
+MAIL_FROM_ADDRESS=hoge@example.com

sail コマンドでDockerコンテナを起動します。
初回はイメージのダウンロードやビルドで時間がかかります。

> cd hoge_app
> ./vendor/bin/sail up -d
(略)
Creating hoge_app_selenium_1    ... done
Creating hoge_app_mysql_1       ... done
Creating hoge_app_meilisearch_1 ... done
Creating hoge_app_mailhog_1      ... done
Creating hoge_app_redis_1       ... done
Creating hoge_app_laravel.test_1 ... done

コンテナが起動したらブラウザで動作確認します。

image.png
image.png

Laravel Breezeのインストール

Laravel Breezeパッケージをインストールします。

> ./vendor/bin/sail composer require laravel/breeze --dev
> ./vendor/bin/sail php artisan breeze:install
> ./vendor/bin/sail npm install
> ./vendor/bin/sail npm run dev

パッケージがインストールできたらマイグレーションを実行します。

> ./vendor/bin/sail php artisan migrate

Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (43.49ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (27.58ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (30.88ms)

これでログインに関する画面やダッシュボードが実装されました。
ウェルカム画面をみると右上にリンクが追加されているのが確認できます。
image.png
image.png

Laravel Breezeの日本語化

このままだと英語表記となっていますので、日本語化対応してみます。
日本語化には公式ではありませんが下記リポジトリを利用させてもらいます。

Laravel-Lang/lang: List of 76 languages for Laravel Framework 4, 5, 6, 7 and 8, Laravel Jetstream and Laravel Fortify.
https://github.com/Laravel-Lang/lang

パッケージとして提供されているので、composer コマンドでインストールできます。
インストール後、設定ファイルをコピーします。

> ./vendor/bin/sail composer require laravel-lang/lang:~8.0
> cp -r ./vendor/laravel-lang/lang/src/ja/ resources/lang/ja/
> cp ./vendor/laravel-lang/lang/json/ja.json resources/lang/

Laravelアプリの設定ファイル(config/app.php)でタイムゾーンと言語設定を変更します。

config/app.php
-    'timezone' => 'UTC',
+    'timezone' => 'Asia/Tokyo',
-    'locale' => 'en',
+    'locale' => 'ja',

画面を確認するとほぼほぼ日本語化されていることが確認できます。
image.png
image.png

日本語化されていない箇所についてはresources/lang/ja.json に設定を追加することで、日本語化できます。
image.png

resources/lang/ja.json
-    "You may not leave a team that you created.": "自身が作成したチームを離れることはできません。"
+    "You may not leave a team that you created.": "自身が作成したチームを離れることはできません。",
+    "Whoops! Something went wrong.": "おっと、サーバーで何か問題が発生しました。"
}

image.png

エラーメッセージに含まれる項目名を日本語にしたい場合、resources/lang/ja/validation.php にあるattributes に設定を追加することで、日本語化できます。

resources/lang/ja/validation.php
-    'attributes' => [],
+    'attributes' => [
+        'password' => 'パスワード',
+    ],

image.png

まとめ

Laravelの開発環境構築からログイン関連の画面追加をしてみましたが、設定ファイルを編集するだけで簡単に用意することができました。
また、./vendor/bin/sail コマンドを利用することで、Dockerコンテナに入る必要がないことも個人的には感動がありました。

参考

Laravelの開発環境をDockerで構築しようとしたら公式さんがLaravel Sailって素敵ツールを提供してくれていました - Qiita
https://qiita.com/kai_kou/items/0e773aaf50698dd5a93f

Laravel-Lang/lang: List of 76 languages for Laravel Framework 4, 5, 6, 7 and 8, Laravel Jetstream and Laravel Fortify.
https://github.com/Laravel-Lang/lang

Laravel Breezeで「シンプルな」ログイン機能をインストール – console dot log
https://blog.capilano-fw.com/?p=8301

Laravel Jetstream の各種フォームを日本語化する – console dot log
https://blog.capilano-fw.com/?p=7930

Laravelの言語を日本語に変更 - Qiita
https://qiita.com/mitashun/items/160784ce352cf529f853

【Laravel】初めての認証(Laravel8でJetstreamを使う) - Qiita
https://qiita.com/manbolila/items/498aae00f3574c72f031

18
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
13