fix: replace route closures with controllers, add Argon2id password migration

- Replace closures in web.php and auth.php with dedicated controllers
  (LoginRedirectController, LogoutController, TwoFactorChallengeController,
  EmailVerificationController) to fix route caching issues
- Add migration to increase password column to VARCHAR(255) for Argon2id support
- Fix 500 error caused by route cache incompatibility with closures
This commit is contained in:
root
2026-05-20 23:40:18 +02:00
parent 75b78c17fa
commit 1fe8d10c90
7 changed files with 106 additions and 14 deletions
+19
View File
@@ -0,0 +1,19 @@
<?php
declare(strict_types=1);
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
class EmailVerificationController extends Controller
{
public function __invoke(Request $request): RedirectResponse
{
$request->user()->sendEmailVerificationNotification();
return back()->with('status', 'verification-link-sent');
}
}
+16
View File
@@ -0,0 +1,16 @@
<?php
declare(strict_types=1);
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\RedirectResponse;
class LoginRedirectController extends Controller
{
public function __invoke(): RedirectResponse
{
return to_route('welcome');
}
}
+22
View File
@@ -0,0 +1,22 @@
<?php
declare(strict_types=1);
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
class LogoutController extends Controller
{
public function __invoke(): RedirectResponse
{
Auth::guard('web')->logout();
Session::invalidate();
Session::regenerateToken();
return redirect('/');
}
}
+16
View File
@@ -0,0 +1,16 @@
<?php
declare(strict_types=1);
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Contracts\View\View;
class TwoFactorChallengeController extends Controller
{
public function __invoke(): View
{
return view('auth.two-factor-challenge');
}
}