MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Laravel - Laravel Breezeのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Laravel - Laravel Breeze
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Laravel Breezeは、Laravelフレームワークの認証機能を迅速に実装できるシンプルな認証スターターキットである。<br> <br> 基本的な認証機能として、ログイン/ログアウト、ユーザ登録、パスワードリセット、メール認証等を提供している。<br> これらの機能は、最小限のコードで実装されており、開発者が理解しやすい構造になっている。<br> <br> フロントエンドについては、BladeテンプレートエンジンとTailwind CSSの組み合わせが標準である。<br> ただし、Inertia.jsを使用したVueやReact、あるいは、LivewireとTailwind CSSの組み合わせも選択することができる。<br> また、APIのみの実装も可能である。<br> <br> Breezeの特徴は、簡便さとカスタマイズ性にある。<br> 生成されるコードは最小限に抑えられており、必要に応じて機能を追加したり修正したりすることが容易である。<br> <br> 主に、プロトタイプ開発や小規模プロジェクトでの利用に適しているが、スキャフォールディングされたコードを自由に編集できるため、プロジェクトの要件に合わせて柔軟に拡張することができる。<br> <br> より高度な認証機能やチーム管理機能が必要な場合は、Laravel Jetstreamの使用を推奨する。<br> <br><br> == Laravel Breezeのインストール == まず、Laravelプロジェクトのトップディレクトリに移動する。<br> 次に、Laravel Breezeをインストールする。<br> # Laravel Breezeを開発環境の依存関係としてcomposer.jsonのrequire-devセクションに追加する場合 composer require laravel/breeze --dev # Laravel Breezeのインストール php artisan breeze:install <br><br> == ユーザ登録機能の拡張 == <syntaxhighlight lang="php"> <?php // このPHPファイルは、app/Http/Controllers/Authディレクトリに配置する namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\Rules; use Illuminate\Support\Facades\Password; class CustomRegistrationController extends Controller { /** * カスタマイズされたユーザ登録処理 * 標準的なBreezeの登録機能を拡張して、追加情報を保存 */ public function store(Request $request) { try { // バリデーションルール $request->validate([ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'confirmed', Rules\Password::defaults()], 'phone' => ['required', 'string', 'max:20'], 'birth_date' => ['required', 'date'] ]); // ユーザ作成 $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), 'phone' => $request->phone, 'birth_date' => $request->birth_date ]); // ユーザプロフィール情報の作成 $user->profile()->create([ 'bio' => $request->bio ?? null, 'address' => $request->address ?? null ]); return redirect()->route('verification.notice'); } catch (\Illuminate\Database\QueryException $e) { // データベースエラーの処理 return back()->withErrors(['db_error' => 'データベース処理中にエラーが発生'])->withInput(); } catch (\Exception $e) { // その他の予期せぬエラーの処理 return back()->withErrors(['error' => '予期せぬエラーが発生'])->withInput(); } } } ?> </syntaxhighlight> <br><br> == パスワードリセット処理の拡張 == <syntaxhighlight lang="php"> <?php // このPHPファイルは、app/Http/Controllers/Authディレクトリに配置する namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\Rules; use Illuminate\Support\Facades\Password; class CustomPasswordResetController extends Controller { /** * カスタマイズされたパスワードリセット処理 * 追加の検証やログ記録機能を実装 */ public function store(Request $request) { try { $request->validate([ 'token' => ['required'], 'email' => ['required', 'email'], 'password' => ['required', 'confirmed', Rules\Password::defaults()] ]); // パスワードリセットの実行 $status = Password::reset( $request->only('email', 'password', 'password_confirmation', 'token'), function ($user, $password) { $user->password = Hash::make($password); $user->save(); // パスワードリセットのログを記録 \Log::info("Password reset completed for user: {$user->email}"); } ); if ($status === Password::PASSWORD_RESET) { return redirect()->route('login')->with('status', __($status)); } return back()->withErrors(['email' => __($status)]); } catch (\Exception $e) { \Log::error("Password reset failed: {$e->getMessage()}"); return back()->withErrors(['error' => 'パスワードリセット処理中にエラーが発生しました。']); } } } ?> </syntaxhighlight> <br><br> == カスタムミドルウェア == <syntaxhighlight lang="php"> <?php // このPHPファイルは、app/Http/Middlewareディレクトリに配置する // また、このファイル (ミドルウェア) を使用する場合は、app/Http/Kernel.phpに登録する必要があることに注意する namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; class CheckProfileCompletion { /** * プロフィール完了状態を確認するミドルウェア * 必須項目が未入力の場合はプロフィール編集ページにリダイレクト */ public function handle(Request $request, Closure $next) { if (auth()->check() && !auth()->user()->hasCompletedProfile()) { return redirect()->route('profile.edit')->with('warning', 'プロフィールの入力を完了してください'); } return $next($request); } } ?> </syntaxhighlight> <br> <syntaxhighlight lang="php"> <?php // このPHPファイルは、app/Modelsディレクトリに配置する // Userモデルの拡張 namespace App\Models; use Laravel\Sanctum\HasApiTokens; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use HasApiTokens; protected $fillable = [ 'name', 'email', 'password', 'phone', 'birth_date' ]; /** * プロフィールの完了状態をチェック */ public function hasCompletedProfile(): bool { return !empty($this->phone) && !empty($this->birth_date) && $this->profile()->exists(); } /** * プロフィールとのリレーション定義 */ public function profile() { return $this->hasOne(Profile::class); } } ?> </syntaxhighlight> <br><br> == APIトークン管理 == <syntaxhighlight lang="php"> <?php // このPHPファイルは、app/Http/Controllers/Apiディレクトリに配置する namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use Illuminate\Http\Request; class TokenController extends Controller { /** * APIトークンの生成 * Breezeのデフォルト認証と組み合わせてAPI認証を実装 */ public function createToken(Request $request) { try { $request->validate([ 'token_name' => 'required|string|max:255' ]); $token = $request->user()->createToken($request->token_name); return response()->json([ 'token' => $token->plainTextToken ]); } catch (\Exception $e) { return response()->json([ 'error' => 'トークン生成中にエラーが発生' ], 500); } } } ?> </syntaxhighlight> <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |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,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:Web]]
Laravel - Laravel Breeze
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse