はじめに
現在、Laravelの習得をしなおしています。
もともとLaravelは3年前に8をざっと勉強したのですが、その後事情によりスキルが雨ざらし。
一念発起して最新の11を勉強しています。
8でもすでに11につながる仕様変更がなされていたのですが、特に9あたりで導入パッケージの大幅な変更などがあったようで、現在の11には8、あるいはそれ以前のVer.では理解不能な表記やクラス/メソッドがたくさんあります。
それを理解するためにLaravel/Breezeを教材にして不明点を個別に調査するという手順を取りました。
以下その覚書ブログです
1.Laravel/Breeze とは
Laravel Breeze は、簡単に認証機能を追加することができる Laravel のパッケージです。
Laravelの認証機能はもともと「php artisan make:auth」コマンドで導入が簡単にできたのですが、現在はこの構成が変わっています。
//010101
Laravelデフォルトの認証機能を実装するためにはLaravelアプリケーションスターターキットというのが必要になります。
キットはアプリケーションのユーザーを登録および認証するために必要なルート、コントローラ、ビューを自動的にスカフォールド(足場という意味)します。
Laravel Breezeは代表的なLaravelの認証キットで、ログイン、ユーザー登録、パスワードリセット、メール確認、パスワード確認など、すべての認証機能を最小かつシンプルにLaravelへ実装したものです。
(ほかにも認証キットとしてJetstreamやForty,Laravel/ui などがある)
Laravel Breezeのインストール手順が以下の日本語サイトに公開されています。
1-1.インストール
プロジェクトのディレクトリから以下コマンドを打ちます
-----------------
composer require laravel/breeze --dev
-----------------
なお、composerのコマンドで--dev がつくコマンドは開発時のみ必要で本番環境では必要ないインストールコマンド。
composer.json では"require" と"require-dev"に仕分けされています。
次にBreeze関連の各種ファイルをインストール
-----------------
php artisan breeze:install
-----------------
npmはインストールしておく
-----------------
npm install
-----------------
以上の手順でLaravel MVCの各ファイル、外部ライブラリの導入や参照ルートなど、Breezeを利用するための構成が展開されます。
Breezeが利用するテーブルはLaravel導入時に用意されている
001_01_01_000000_create_users_table.php、001_01_01_000000_create_users_table.php、001_01_01_000000_create_users_table.phpを
php artisan migrate して作成します。
以上でLaravel Breeze を利用する環境が整備されます。
1-2.Laravel Breeze 状態遷移
1-2-1.ユーザー登録
URLで/register を指定するとユーザー情報登録画面にアクセスできます。
各フィールドにユーザー情報を入力します。パスワードは確認用に2回入力します。
「登録」ボタンを押します。
/dashboad画面に遷移します。ここにはユーザー情報が登録された証として右上に登録ユーザー名、中央に登録ユーザー名義でログイン中である旨が表記されています。
この状態でDBのusersテーブルにex.「小野小町」が登録されています。
ちなみにログイン中の状態はセッション管理によりしばらく継続します。ブラウザを閉じてもCookieにログインに付与されたセッションIDが残っており、DBとの整合でログイン状態を維持します。
右上の登録ユーザー名にリストメニューが装備されています。ここからアカウントを選択します。
/profiel画面に遷移します。ここから登録ユーザー名、メールアドレス、そしてパスワードの変更が行えます。
登録ユーザー名、メールアドレスの変更は上段から行います。
更新後上段の「保存」を押します。変更後、特に画面や入力項目の遷移はありません。
パスワードは下段のパスワード更新エリアに変更パスワードを入力し、下段の「保存」を押します。
「保存」を押下げるとパスワード各欄が空白に戻ります。
右上の登録ユーザー名にリストメニューが装備されています。ここからログアウトを選択します。
LarabelデフォルトのWelcomeページに遷移します。これでログイン状態が解除されます。
以上がユーザー情報登録の一連の流れですが、以下のように登録情報が適正でない場合で「登録」を押すとバリデーションが機能してエラーメッセージが表示されます。
・Breeze でプライマリキーになっているメールアドレスが既存と重複している場合
・文字数が足りない、あるいはメールアドレスの形式を取っていない 等々
ユーザー登録状態遷移
1-2-2.ログイン
URLで/login を指定するとログイン画面にアクセスできます。
ここで適正なユーザーアカウントを入力すると/dashboad画面に遷移します。
Breezeは認証機能のひな型にすぎないので、ここから先の展開はありません。
ここで異なるパスワードを入力すると「ログイン情報が存在しません」とエラーメッセージが表示されます。
パスワード修正による再ログインは何度かできるようです。回数制限の有無については後日確認します。
パスワードを忘れてしまった場合に「パスワードを忘れた?」があります。
これをクリックすると/forgot-password 画面に遷移してパスワードリセットメールが飛ぶようになっています。
※メール送信の成否については別途検証します。
このパスワードメール機能は一定期間において2回以上できない仕様のようです。
以上がログインの一連の流れですが、以下のように登録情報が適正でない場合で「ログイン」を押すとバリデーションが機能してエラーメッセージが表示されます。
・文字数が足りない、あるいはメールアドレスの形式を取っていない 等々
ログイン機能状態遷移
以上がLaravel/Breezeの概要です。 BreezeはLaravelで構成する認証機能のひな型のひとつにすぎませんが、現時点におけるWEBサービスの認証機能/レベルの標準をここから学び取ることができようかと思います。
以降Laravel/Breeae の仕組み ~2、3としてこのLaravel/Breezeのコードをトレースして各機能の実装を学習したいと思います。
Comentarios