## Laravel Fortify Fortify is a headless authentication backend that provides authentication routes and controllers for Laravel applications. **Before implementing any authentication features, use the `search-docs` tool to get the latest docs for that specific feature.** ### Configuration & Setup - Check `config/fortify.php` to see what's enabled. Use `search-docs` for detailed information on specific features. - Enable features by adding them to the `'features' => []` array: `Features::registration()`, `Features::resetPasswords()`, etc. - To see the all Fortify registered routes, use the `list-routes` tool with the `only_vendor: true` and `action: "Fortify"` parameters. - Fortify includes view routes by default (login, register). Set `'views' => false` in the configuration file to disable them if you're handling views yourself. ### Customization - Views can be customized in `FortifyServiceProvider`'s `boot()` method using `Fortify::loginView()`, `Fortify::registerView()`, etc. - Customize authentication logic with `Fortify::authenticateUsing()` for custom user retrieval / validation. - Actions in `app/Actions/Fortify/` handle business logic (user creation, password reset, etc.). They're fully customizable, so you can modify them to change feature behavior. ## Available Features - `Features::registration()` for user registration. - `Features::emailVerification()` to verify new user emails. - `Features::twoFactorAuthentication()` for 2FA with QR codes and recovery codes. - Add options: `['confirmPassword' => true, 'confirm' => true]` to require password confirmation and OTP confirmation before enabling 2FA. - `Features::updateProfileInformation()` to let users update their profile. - `Features::updatePasswords()` to let users change their passwords. - `Features::resetPasswords()` for password reset via email.