feat: add team invitation acceptance flow with email link routing

Implement end-to-end invitation acceptance: neutral entry route validates
token and routes to register (new users), login (existing users), or
auto-accepts (authenticated users). Handles 2FA token survival via
session, email case-insensitive matching, and dedicated error pages.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-27 15:16:45 +01:00
parent 8f39bd9b73
commit 88e5803061
13 changed files with 422 additions and 19 deletions

View File

@@ -7,6 +7,9 @@ Route::inertia('/', 'Welcome', [
'canRegister' => Features::enabled(Features::registration()),
])->name('home');
Route::get('team/invitation/{token}/accept', \App\Http\Controllers\TeamInvitationAcceptController::class)
->name('team.invitation.accept');
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('dashboard', \App\Http\Controllers\DashboardController::class)->name('dashboard');
Route::post('workspace/switch', \App\Http\Controllers\WorkspaceSwitchController::class)