group(function () { Route::get('register', [RegisteredUserController::class, 'create']) ->name('register'); Route::post('register', [RegisteredUserController::class, 'store']); Route::get('login', [AuthenticatedSessionController::class, 'create']) ->name('login'); Route::post('login', [AuthenticatedSessionController::class, 'store']); }); Route::middleware('auth')->group(function () { Route::post('logout', [AuthenticatedSessionController::class, 'destroy']) ->name('logout'); }); Route::get('/auth/redirect', function () { return Socialite::driver('keycloak')->redirect(); })->name('auth.redirect'); Route::get('/auth/callback', function () { $keycloackUser = Socialite::driver('keycloak')->user(); $user = User::where('oidc_id', $keycloackUser->getId())->first(); if ($user) { Auth::login($user); return redirect()->intended(route('home')); } else { $user = User::create([ 'email' => $keycloackUser->getEmail(), 'name' => $keycloackUser->getNickname(), 'avatar' => $keycloackUser->getAvatar(), 'oidc_id' => $keycloackUser->getId() ]); Auth::login($user); return redirect()->intended(route('home')); } });