marchenkovma/laravel-keycloak
marchenkovma/laravel-keycloak integrates Keycloak with Laravel, enabling authentication against Keycloak realms via OAuth2/OpenID Connect and helping protect routes with Keycloak-issued access tokens.
resources/js/app.ts assigns a default layout to all pages, the published Welcome/login page must be excluded by name (layout: (name) => (name === 'Welcome' ? null : AppLayout)). Setting layout: null inside the page itself does not work, because Inertia re-applies the default layout. Plan ~1 hour of frontend work plus a note in internal setup docs; without it, users hitting the login screen see the app's sidebar chrome.openssl, Laravel 13). Existing adopters need take no action; no migration, no regression risk. This is a zero-cost patch for anyone already pinned.Consider it when all of the following hold:
openssl extension available — this is a hard floor, not a soft preference.resources/js/app.ts and a Vue/TS-style AppLayout), and a default layout is already applied globally.Look elsewhere when:
openssl requirement.To executives (one paragraph): This package gives us a pre-built login screen for our Laravel 13 / Inertia frontend, saving design and build effort on a page every user sees. The new 0.5.1 release contains no code changes — it is documentation only — so it carries zero upgrade risk and no migration work. The one substantive item is a documented setup step: if our app applies a default page layout globally, the login page must be explicitly excluded from it, otherwise the login screen shows up with our sidebar attached. That is a one-line frontend change and a permanent note in our setup guide. The main caveat is a hard platform floor (PHP 8.4+, Laravel 13) and pre-1.0 status, which makes this a fit for teams already on the newest stack, not a broad rollout.
To engineering (concise): Requirements unchanged: PHP 8.4+ with openssl, Laravel 13. Package code is untouched in 0.5.1; only the README changed. Action item if you adopt: in resources/js/app.ts, when a default layout is applied to all pages, exclude Welcome by name — layout: (name) => (name === 'Welcome' ? null : AppLayout). Setting layout: null inside the page does not work; Inertia substitutes the default layout regardless. Treat this as a documented integration constraint, not a bug, and add it to our onboarding checklist. No dependency bump required for existing installs, but note we are still on a 0.x line for auth-adjacent UI — keep the auth flow under our own review.
How can I help you explore Laravel packages today?