feat: add two-factor authentication support and related configurations
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Middleware\EnsureTwoFactorAuthenticationIsEnabled;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::get('/user', function (Request $request) {
|
||||
return $request->user();
|
||||
})->middleware('auth:sanctum');
|
||||
})->middleware(['auth:sanctum', EnsureTwoFactorAuthenticationIsEnabled::class]);
|
||||
|
||||
@@ -7,6 +7,9 @@ use App\Http\Controllers\Auth\LoginController;
|
||||
use App\Http\Controllers\Auth\RegisterController;
|
||||
use App\Http\Controllers\Auth\ResetPasswordController;
|
||||
use App\Http\Controllers\Auth\SocialiteController;
|
||||
use App\Http\Controllers\Auth\TwoFactorChallengeController;
|
||||
use App\Http\Controllers\Auth\TwoFactorSettingsController;
|
||||
use App\Http\Controllers\ProfileController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::middleware('guest')->group(function () {
|
||||
@@ -29,6 +32,12 @@ Route::middleware('guest')->group(function () {
|
||||
// Complete profile after social login (when username is taken)
|
||||
Route::get('complete-profile', [CompleteProfileController::class, 'create'])->name('auth.complete-profile');
|
||||
Route::post('complete-profile', [CompleteProfileController::class, 'store']);
|
||||
|
||||
Route::get('two-factor-challenge', [TwoFactorChallengeController::class, 'create'])
|
||||
->name('two-factor.login');
|
||||
Route::post('two-factor-challenge', [TwoFactorChallengeController::class, 'store'])
|
||||
->middleware('throttle:5,1')
|
||||
->name('two-factor.login.store');
|
||||
});
|
||||
|
||||
Route::middleware('auth')->group(function () {
|
||||
@@ -38,4 +47,19 @@ Route::middleware('auth')->group(function () {
|
||||
Route::get('email/verify', [EmailVerificationController::class, 'notice'])->name('verification.notice');
|
||||
Route::get('email/verify/{id}/{hash}', [EmailVerificationController::class, 'verify'])->middleware('signed')->name('verification.verify');
|
||||
Route::post('email/verification-notification', [EmailVerificationController::class, 'resend'])->middleware('throttle:6,1')->name('verification.send');
|
||||
|
||||
Route::get('profile', ProfileController::class)->name('profile.show');
|
||||
Route::redirect('security', '/profile')->name('profile.security-redirect');
|
||||
Route::post('profile/two-factor', [TwoFactorSettingsController::class, 'enable'])
|
||||
->middleware('throttle:5,1')
|
||||
->name('profile.two-factor.enable');
|
||||
Route::post('profile/two-factor/confirm', [TwoFactorSettingsController::class, 'confirm'])
|
||||
->middleware('throttle:5,1')
|
||||
->name('profile.two-factor.confirm');
|
||||
Route::delete('profile/two-factor', [TwoFactorSettingsController::class, 'disable'])
|
||||
->middleware('throttle:5,1')
|
||||
->name('profile.two-factor.disable');
|
||||
Route::post('profile/two-factor/recovery-codes', [TwoFactorSettingsController::class, 'recoveryCodes'])
|
||||
->middleware('throttle:5,1')
|
||||
->name('profile.two-factor.recovery-codes');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user