A Laravel(応用 ライブラリ) - user000422/0 GitHub Wiki

Fortify(フォーティファイ)

フロントエンドに依存しないバックエンド認証。 強み : あらゆる実装を簡単にカスタムできる。 ログイン、登録、パスワードリセット、メール認証。 ルートとコントローラーを提供するだけ。 ヘッドレス認証ライブラリである。 ★ログイン実施回数の制限

Laravel9に導入してみた。 https://qiita.com/MS-0610/items/d86c0936b4b06aedc759 ベテランのおすすめ「Fortifyをカスタムして使うのが一番。」 ベテランのおすすめ「自分が今から使うならFortify。」

■導入

cd [Laravelプロジェクト]

# インストール fortify
composer require laravel/fortify
php artisan fortify:install

# 関連ファイルを作成
php artisan vendor:publish --provider="Laravel\Fortify\FortifyServiceProvider"

php artisan migrate

**■(必須)使用機能の有効化(無効化)** config/fortify.php 使う機能のみを有効化することができる仕組みがあります。 JetStreamを使用しない場合は「registration」「resetPasswords」「emailVerification」のみ有効にすること。

    'features' => [
        Features::registration(),
        Features::resetPasswords(),
        Features::emailVerification()
        //Features::updateProfileInformation(),
        //Features::updatePasswords(),
        //Features::twoFactorAuthentication([
        //    'confirm' => true,
        //    'confirmPassword' => true,
        //    // 'window' => 0,
        //]),
    ],

■ビュー用のルーティングを無効化する config/fortify.php 'views' => false, ※無効化すると/loginがGETサポートしなくなる。

■マイグレーション create_users_table.php 自動で作成される。

■(必須)サービスプロバイダ登録 config/app.php

'providers' => [
	…
	App\Providers\FortifyServiceProvider::class,	// 追加
],

ルーティング : app/Providers/RouteServiceProvider.php

■View 公式ドキュメントや公式のソースから resources/views/auth/… に作成したい意図を感じる。

memo: 作成しなければならない画面
ログイン前
・ユーザ登録画面 resources/views/auth/register.blade.php
・ログイン画面 resources/views/auth/login.blade.php
・パスワードリセット申請画面 resources/views/auth/forgot-password.blade.php
・パスワードリセット画面 resources/views/auth/reset-password.blade.php

ログイン後
・パスワード変更画面 resources/views/profile/password.blade.php
・プロフィール変更画面 resources/views/profile/edit.blade.php
・2要素認証QRコード表示画面 resources/views/auth/two-factor-authentication.blade.php
・2要素認証用パスワード再入力画面 resources/views/auth/confirm-password.blade.php
・2要素認証コード入力画面 resources/views/auth/two-factor-challenge.blade.php

Jetstream

スターターキット。 ログイン、登録、メール認証、二要素認証、セッション管理、チーム管理。 Tailwind を使用した設計。 オプションでAPIサポート(Laravel Sanctum)。 オプションで2つのフロントエンドスタックを選択する。(Livewire Inertia.js