48 lines
2.0 KiB
PHP
48 lines
2.0 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Http\Controllers\Auth\WebAuthController;
|
|
use App\Http\Controllers\Auth\TwoFactorController;
|
|
use App\Http\Controllers\DashboardController;
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Web Routes
|
|
|--------------------------------------------------------------------------
|
|
*/
|
|
|
|
// Guest routes
|
|
Route::middleware('guest')->group(function () {
|
|
Route::get('/login', [WebAuthController::class, 'showLogin'])->name('login');
|
|
Route::post('/login', [WebAuthController::class, 'login']);
|
|
Route::get('/register', [WebAuthController::class, 'showRegister'])->name('register');
|
|
Route::post('/register', [WebAuthController::class, 'register']);
|
|
Route::get('/2fa/challenge', [WebAuthController::class, 'show2FAChallenge'])->name('2fa.challenge');
|
|
Route::post('/2fa/challenge', [WebAuthController::class, 'verify2FA']);
|
|
});
|
|
|
|
// Authenticated routes
|
|
Route::middleware('auth')->group(function () {
|
|
Route::post('/logout', [WebAuthController::class, 'logout'])->name('logout');
|
|
|
|
// Dashboard
|
|
Route::get('/', [DashboardController::class, 'index'])->name('dashboard');
|
|
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
|
|
|
|
// 2FA Settings
|
|
Route::get('/2fa', [TwoFactorController::class, 'show'])->name('2fa.settings');
|
|
Route::get('/2fa/enable', [TwoFactorController::class, 'enable'])->name('2fa.enable');
|
|
Route::post('/2fa/confirm', [TwoFactorController::class, 'confirm'])->name('2fa.confirm');
|
|
Route::post('/2fa/disable', [TwoFactorController::class, 'disable'])->name('2fa.disable');
|
|
Route::get('/2fa/recovery-codes', [TwoFactorController::class, 'regenerateRecoveryCodes'])->name('2fa.recovery-codes');
|
|
});
|
|
|
|
// Language switcher
|
|
Route::get('/language/{locale}', function ($locale) {
|
|
if (in_array($locale, ['en', 'ar'])) {
|
|
session(['locale' => $locale]);
|
|
app()->setLocale($locale);
|
|
}
|
|
return redirect()->back();
|
|
})->name('language.switch');
|