<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>http://mochiuwiki.e2.valueserver.jp/index.php?action=history&amp;feed=atom&amp;title=Laravel_-_Laravel_Breeze</id>
	<title>Laravel - Laravel Breeze - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="http://mochiuwiki.e2.valueserver.jp/index.php?action=history&amp;feed=atom&amp;title=Laravel_-_Laravel_Breeze"/>
	<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=Laravel_-_Laravel_Breeze&amp;action=history"/>
	<updated>2026-06-05T07:21:25Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=Laravel_-_Laravel_Breeze&amp;diff=12229&amp;oldid=prev</id>
		<title>Wiki: ページの作成:「== 概要 == Laravel Breezeは、Laravelフレームワークの認証機能を迅速に実装できるシンプルな認証スターターキットである。&lt;br&gt; &lt;br&gt; 基本的な認証機能として、ログイン/ログアウト、ユーザ登録、パスワードリセット、メール認証等を提供している。&lt;br&gt; これらの機能は、最小限のコードで実装されており、開発者が理解しやすい構造になっている。&lt;br&gt; &lt;br&gt;…」</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=Laravel_-_Laravel_Breeze&amp;diff=12229&amp;oldid=prev"/>
		<updated>2024-11-14T18:52:34Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「== 概要 == Laravel Breezeは、Laravelフレームワークの認証機能を迅速に実装できるシンプルな認証スターターキットである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 基本的な認証機能として、ログイン/ログアウト、ユーザ登録、パスワードリセット、メール認証等を提供している。&amp;lt;br&amp;gt; これらの機能は、最小限のコードで実装されており、開発者が理解しやすい構造になっている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 概要 ==&lt;br /&gt;
Laravel Breezeは、Laravelフレームワークの認証機能を迅速に実装できるシンプルな認証スターターキットである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
基本的な認証機能として、ログイン/ログアウト、ユーザ登録、パスワードリセット、メール認証等を提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
これらの機能は、最小限のコードで実装されており、開発者が理解しやすい構造になっている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
フロントエンドについては、BladeテンプレートエンジンとTailwind CSSの組み合わせが標準である。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、Inertia.jsを使用したVueやReact、あるいは、LivewireとTailwind CSSの組み合わせも選択することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
また、APIのみの実装も可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Breezeの特徴は、簡便さとカスタマイズ性にある。&amp;lt;br&amp;gt;&lt;br /&gt;
生成されるコードは最小限に抑えられており、必要に応じて機能を追加したり修正したりすることが容易である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主に、プロトタイプ開発や小規模プロジェクトでの利用に適しているが、スキャフォールディングされたコードを自由に編集できるため、プロジェクトの要件に合わせて柔軟に拡張することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
より高度な認証機能やチーム管理機能が必要な場合は、Laravel Jetstreamの使用を推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Laravel Breezeのインストール ==&lt;br /&gt;
まず、Laravelプロジェクトのトップディレクトリに移動する。&amp;lt;br&amp;gt;&lt;br /&gt;
次に、Laravel Breezeをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 # Laravel Breezeを開発環境の依存関係としてcomposer.jsonのrequire-devセクションに追加する場合&lt;br /&gt;
 composer require laravel/breeze --dev&lt;br /&gt;
 &lt;br /&gt;
 # Laravel Breezeのインストール&lt;br /&gt;
 php artisan breeze:install&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ユーザ登録機能の拡張 ==&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 // このPHPファイルは、app/Http/Controllers/Authディレクトリに配置する&lt;br /&gt;
 &lt;br /&gt;
 namespace App\Http\Controllers\Auth;&lt;br /&gt;
 &lt;br /&gt;
 use App\Http\Controllers\Controller;&lt;br /&gt;
 use App\Models\User;&lt;br /&gt;
 use Illuminate\Http\Request;&lt;br /&gt;
 use Illuminate\Support\Facades\Hash;&lt;br /&gt;
 use Illuminate\Validation\Rules;&lt;br /&gt;
 use Illuminate\Support\Facades\Password;&lt;br /&gt;
 &lt;br /&gt;
 class CustomRegistrationController extends Controller&lt;br /&gt;
 {&lt;br /&gt;
    /**&lt;br /&gt;
     * カスタマイズされたユーザ登録処理&lt;br /&gt;
     * 標準的なBreezeの登録機能を拡張して、追加情報を保存&lt;br /&gt;
     */&lt;br /&gt;
    public function store(Request $request)&lt;br /&gt;
    {&lt;br /&gt;
       try {&lt;br /&gt;
          // バリデーションルール&lt;br /&gt;
          $request-&amp;gt;validate([&lt;br /&gt;
             &amp;#039;name&amp;#039; =&amp;gt; [&amp;#039;required&amp;#039;, &amp;#039;string&amp;#039;, &amp;#039;max:255&amp;#039;],&lt;br /&gt;
             &amp;#039;email&amp;#039; =&amp;gt; [&amp;#039;required&amp;#039;, &amp;#039;string&amp;#039;, &amp;#039;email&amp;#039;, &amp;#039;max:255&amp;#039;, &amp;#039;unique:users&amp;#039;],&lt;br /&gt;
             &amp;#039;password&amp;#039; =&amp;gt; [&amp;#039;required&amp;#039;, &amp;#039;confirmed&amp;#039;, Rules\Password::defaults()],&lt;br /&gt;
             &amp;#039;phone&amp;#039; =&amp;gt; [&amp;#039;required&amp;#039;, &amp;#039;string&amp;#039;, &amp;#039;max:20&amp;#039;],&lt;br /&gt;
             &amp;#039;birth_date&amp;#039; =&amp;gt; [&amp;#039;required&amp;#039;, &amp;#039;date&amp;#039;]&lt;br /&gt;
          ]);&lt;br /&gt;
 &lt;br /&gt;
          // ユーザ作成&lt;br /&gt;
          $user = User::create([&lt;br /&gt;
             &amp;#039;name&amp;#039; =&amp;gt; $request-&amp;gt;name,&lt;br /&gt;
             &amp;#039;email&amp;#039; =&amp;gt; $request-&amp;gt;email,&lt;br /&gt;
             &amp;#039;password&amp;#039; =&amp;gt; Hash::make($request-&amp;gt;password),&lt;br /&gt;
             &amp;#039;phone&amp;#039; =&amp;gt; $request-&amp;gt;phone,&lt;br /&gt;
             &amp;#039;birth_date&amp;#039; =&amp;gt; $request-&amp;gt;birth_date&lt;br /&gt;
          ]);&lt;br /&gt;
 &lt;br /&gt;
          // ユーザプロフィール情報の作成&lt;br /&gt;
          $user-&amp;gt;profile()-&amp;gt;create([&lt;br /&gt;
             &amp;#039;bio&amp;#039; =&amp;gt; $request-&amp;gt;bio ?? null,&lt;br /&gt;
             &amp;#039;address&amp;#039; =&amp;gt; $request-&amp;gt;address ?? null&lt;br /&gt;
          ]);&lt;br /&gt;
 &lt;br /&gt;
          return redirect()-&amp;gt;route(&amp;#039;verification.notice&amp;#039;);&lt;br /&gt;
       }&lt;br /&gt;
       catch (\Illuminate\Database\QueryException $e) {&lt;br /&gt;
          // データベースエラーの処理&lt;br /&gt;
          return back()-&amp;gt;withErrors([&amp;#039;db_error&amp;#039; =&amp;gt; &amp;#039;データベース処理中にエラーが発生&amp;#039;])-&amp;gt;withInput();&lt;br /&gt;
       }&lt;br /&gt;
       catch (\Exception $e) {&lt;br /&gt;
          // その他の予期せぬエラーの処理&lt;br /&gt;
          return back()-&amp;gt;withErrors([&amp;#039;error&amp;#039; =&amp;gt; &amp;#039;予期せぬエラーが発生&amp;#039;])-&amp;gt;withInput();&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== パスワードリセット処理の拡張 ==&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 // このPHPファイルは、app/Http/Controllers/Authディレクトリに配置する&lt;br /&gt;
 &lt;br /&gt;
 namespace App\Http\Controllers\Auth;&lt;br /&gt;
 &lt;br /&gt;
 use App\Http\Controllers\Controller;&lt;br /&gt;
 use App\Models\User;&lt;br /&gt;
 use Illuminate\Http\Request;&lt;br /&gt;
 use Illuminate\Support\Facades\Hash;&lt;br /&gt;
 use Illuminate\Validation\Rules;&lt;br /&gt;
 use Illuminate\Support\Facades\Password;&lt;br /&gt;
 &lt;br /&gt;
 class CustomPasswordResetController extends Controller&lt;br /&gt;
 {&lt;br /&gt;
    /**&lt;br /&gt;
     * カスタマイズされたパスワードリセット処理&lt;br /&gt;
     * 追加の検証やログ記録機能を実装&lt;br /&gt;
     */&lt;br /&gt;
    public function store(Request $request)&lt;br /&gt;
    {&lt;br /&gt;
       try {&lt;br /&gt;
          $request-&amp;gt;validate([&lt;br /&gt;
             &amp;#039;token&amp;#039; =&amp;gt; [&amp;#039;required&amp;#039;],&lt;br /&gt;
             &amp;#039;email&amp;#039; =&amp;gt; [&amp;#039;required&amp;#039;, &amp;#039;email&amp;#039;],&lt;br /&gt;
             &amp;#039;password&amp;#039; =&amp;gt; [&amp;#039;required&amp;#039;, &amp;#039;confirmed&amp;#039;, Rules\Password::defaults()]&lt;br /&gt;
          ]);&lt;br /&gt;
 &lt;br /&gt;
          // パスワードリセットの実行&lt;br /&gt;
          $status = Password::reset(&lt;br /&gt;
             $request-&amp;gt;only(&amp;#039;email&amp;#039;, &amp;#039;password&amp;#039;, &amp;#039;password_confirmation&amp;#039;, &amp;#039;token&amp;#039;),&lt;br /&gt;
             function ($user, $password) {&lt;br /&gt;
                $user-&amp;gt;password = Hash::make($password);&lt;br /&gt;
                $user-&amp;gt;save();&lt;br /&gt;
 &lt;br /&gt;
                // パスワードリセットのログを記録&lt;br /&gt;
                \Log::info(&amp;quot;Password reset completed for user: {$user-&amp;gt;email}&amp;quot;);&lt;br /&gt;
             }&lt;br /&gt;
          );&lt;br /&gt;
 &lt;br /&gt;
          if ($status === Password::PASSWORD_RESET) {&lt;br /&gt;
             return redirect()-&amp;gt;route(&amp;#039;login&amp;#039;)-&amp;gt;with(&amp;#039;status&amp;#039;, __($status));&lt;br /&gt;
          }&lt;br /&gt;
 &lt;br /&gt;
          return back()-&amp;gt;withErrors([&amp;#039;email&amp;#039; =&amp;gt; __($status)]);&lt;br /&gt;
       }&lt;br /&gt;
       catch (\Exception $e) {&lt;br /&gt;
          \Log::error(&amp;quot;Password reset failed: {$e-&amp;gt;getMessage()}&amp;quot;);&lt;br /&gt;
          return back()-&amp;gt;withErrors([&amp;#039;error&amp;#039; =&amp;gt; &amp;#039;パスワードリセット処理中にエラーが発生しました。&amp;#039;]);&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== カスタムミドルウェア ==&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 // このPHPファイルは、app/Http/Middlewareディレクトリに配置する&lt;br /&gt;
 // また、このファイル (ミドルウェア) を使用する場合は、app/Http/Kernel.phpに登録する必要があることに注意する&lt;br /&gt;
 &lt;br /&gt;
 namespace App\Http\Middleware;&lt;br /&gt;
 &lt;br /&gt;
 use Closure;&lt;br /&gt;
 use Illuminate\Http\Request;&lt;br /&gt;
 &lt;br /&gt;
 class CheckProfileCompletion&lt;br /&gt;
 {&lt;br /&gt;
    /**&lt;br /&gt;
     * プロフィール完了状態を確認するミドルウェア&lt;br /&gt;
     * 必須項目が未入力の場合はプロフィール編集ページにリダイレクト&lt;br /&gt;
     */&lt;br /&gt;
    public function handle(Request $request, Closure $next)&lt;br /&gt;
    {&lt;br /&gt;
       if (auth()-&amp;gt;check() &amp;amp;&amp;amp; !auth()-&amp;gt;user()-&amp;gt;hasCompletedProfile()) {&lt;br /&gt;
          return redirect()-&amp;gt;route(&amp;#039;profile.edit&amp;#039;)-&amp;gt;with(&amp;#039;warning&amp;#039;, &amp;#039;プロフィールの入力を完了してください&amp;#039;);&lt;br /&gt;
       }&lt;br /&gt;
 &lt;br /&gt;
       return $next($request);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 // このPHPファイルは、app/Modelsディレクトリに配置する&lt;br /&gt;
 &lt;br /&gt;
 // Userモデルの拡張&lt;br /&gt;
 namespace App\Models;&lt;br /&gt;
 &lt;br /&gt;
 use Laravel\Sanctum\HasApiTokens;&lt;br /&gt;
 use Illuminate\Foundation\Auth\User as Authenticatable;&lt;br /&gt;
 &lt;br /&gt;
 class User extends Authenticatable&lt;br /&gt;
 {&lt;br /&gt;
    use HasApiTokens;&lt;br /&gt;
 &lt;br /&gt;
    protected $fillable = [&lt;br /&gt;
       &amp;#039;name&amp;#039;,&lt;br /&gt;
       &amp;#039;email&amp;#039;,&lt;br /&gt;
       &amp;#039;password&amp;#039;,&lt;br /&gt;
       &amp;#039;phone&amp;#039;,&lt;br /&gt;
       &amp;#039;birth_date&amp;#039;&lt;br /&gt;
    ];&lt;br /&gt;
 &lt;br /&gt;
    /**&lt;br /&gt;
     * プロフィールの完了状態をチェック&lt;br /&gt;
     */&lt;br /&gt;
    public function hasCompletedProfile(): bool&lt;br /&gt;
    {&lt;br /&gt;
       return !empty($this-&amp;gt;phone) &amp;amp;&amp;amp; !empty($this-&amp;gt;birth_date) &amp;amp;&amp;amp;  $this-&amp;gt;profile()-&amp;gt;exists();&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    /**&lt;br /&gt;
     * プロフィールとのリレーション定義&lt;br /&gt;
     */&lt;br /&gt;
    public function profile()&lt;br /&gt;
    {&lt;br /&gt;
       return $this-&amp;gt;hasOne(Profile::class);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== APIトークン管理 ==&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 // このPHPファイルは、app/Http/Controllers/Apiディレクトリに配置する&lt;br /&gt;
 &lt;br /&gt;
 namespace App\Http\Controllers\Api;&lt;br /&gt;
 &lt;br /&gt;
 use App\Http\Controllers\Controller;&lt;br /&gt;
 use Illuminate\Http\Request;&lt;br /&gt;
 &lt;br /&gt;
 class TokenController extends Controller&lt;br /&gt;
 {&lt;br /&gt;
    /**&lt;br /&gt;
     * APIトークンの生成&lt;br /&gt;
     * Breezeのデフォルト認証と組み合わせてAPI認証を実装&lt;br /&gt;
     */&lt;br /&gt;
    public function createToken(Request $request)&lt;br /&gt;
    {&lt;br /&gt;
       try {&lt;br /&gt;
          $request-&amp;gt;validate([&lt;br /&gt;
             &amp;#039;token_name&amp;#039; =&amp;gt; &amp;#039;required|string|max:255&amp;#039;&lt;br /&gt;
          ]);&lt;br /&gt;
 &lt;br /&gt;
          $token = $request-&amp;gt;user()-&amp;gt;createToken($request-&amp;gt;token_name);&lt;br /&gt;
 &lt;br /&gt;
          return response()-&amp;gt;json([&lt;br /&gt;
             &amp;#039;token&amp;#039; =&amp;gt; $token-&amp;gt;plainTextToken&lt;br /&gt;
          ]);&lt;br /&gt;
       }&lt;br /&gt;
       catch (\Exception $e) {&lt;br /&gt;
          return response()-&amp;gt;json([&lt;br /&gt;
             &amp;#039;error&amp;#039; =&amp;gt; &amp;#039;トークン生成中にエラーが発生&amp;#039;&lt;br /&gt;
          ], 500);&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Web]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
</feed>