group(function () { Route::get('/google', [SocialAuthController::class, 'redirect'])->name('auth.google'); Route::get('/google/callback', [SocialAuthController::class, 'callback'])->name('auth.google.callback'); Route::get('/discord', [SocialAuthController::class, 'redirect'])->name('auth.discord'); Route::get('/discord/callback', [SocialAuthController::class, 'callback'])->name('auth.discord.callback'); Route::get('/github', [SocialAuthController::class, 'redirect'])->name('auth.github'); Route::get('/github/callback', [SocialAuthController::class, 'callback'])->name('auth.github.callback'); Route::delete('/unlink/{provider}', [SocialAuthController::class, 'unlink'])->name('auth.unlink')->middleware('auth'); }); // Registration Route::middleware(['guest', 'throttle:60,1'])->group(function () { Route::get('/register', [RegisteredUserController::class, 'create']); Route::post('/register', [RegisteredUserController::class, 'store'])->name('register'); Route::get('/register/{referral_code}', UserReferralController::class)->name('register.referral'); }); // Password reset Route::middleware(['guest', 'throttle:60,1'])->group(function () { Route::get('forgot-password', ForgotPasswordController::class)->name('forgot.password.get'); Route::post('forgot-password', [ForgotPasswordController::class, 'submitForgetPassword'])->name('forgot.password.post'); Route::get('reset-password/{token}', [ForgotPasswordController::class, 'showResetPassword'])->name('reset.password.get'); Route::post('reset-password/{token}', [ForgotPasswordController::class, 'submitResetPassword'])->name('reset.password.post'); }); // Two factor challenge login Route::get('/two-factor-challenge', static fn () => view('auth.two-factor-challenge'))->name('two-factor.login'); // Email verification resend Route::post('/email/verification-notification', static function () { request()->user()->sendEmailVerificationNotification(); return back()->with('status', 'verification-link-sent'); })->middleware(['auth', 'throttle:6,1'])->name('verification.send'); // Two factor challenge with throttle if (Features::enabled(Features::twoFactorAuthentication())) { $twoFactorLimiter = config('fortify.limiters.two-factor'); Route::post('/two-factor-challenge', [TwoFactorAuthenticatedSessionController::class, 'store']) ->middleware( array_filter([ 'guest:' . config('fortify.guard'), $twoFactorLimiter ? 'throttle:' . $twoFactorLimiter : null, ]), ); }