Installation
bambamboole/laravel-oidc-ui is a Lattice-powered auth UI for the
OIDC provider: login, registration, password reset and change, email verification, password
confirmation, two-factor challenge and enrollment, and OAuth consent, rendered as Lattice pages
instead of Blade views.
Requirements
Section titled “Requirements”- PHP
^8.4 bambamboole/laravel-oidc-serverin the same release — the suite is versioned in locksteplaravel/passkeys^0.2,lattice-php/lattice>=0.70
Install
Section titled “Install”Two ways to get it:
# The master package includes server, client, and ui.composer require bambamboole/laravel-oidc# Or standalone, alongside the server package.composer require bambamboole/laravel-oidc-uiThe service provider (UiServiceProvider) is auto-discovered, and there is nothing to register
on the frontend either: the package’s composer.json declares extra.lattice: { discover: ["src"], plugin: "resources/js/plugin.ts" }, so the app’s own lattice() Vite plugin discovers this
package’s pages, components, and translations on its own the moment the dependency is installed
(see Frontend setup).
What gets bound by default
Section titled “What gets bound by default”UiServiceProvider::register() completes — along with every other provider’s register() — before
any provider’s boot() runs, so an app provider that re-binds the same contract (in its own
register() or boot()) always executes after this default and wins, without forking the
package (see Overriding views):
- All eleven auth view contracts the server package declares —
LoginView,RegisterView,PasswordResetRequestView,PasswordResetView,PasswordUpdateView,EmailVerificationView,PasswordConfirmationView,TwoFactorChallengeView,FactorSetupView,ConsentView(the OAuth consent page), andLogoutConfirmationView(the RP-initiated logout prompt) — each bound to a Lattice page (see View seams). - The
authlayout (AuthLayout) — discovered, not bound here:extra.lattice.discover: ["src"]lets Lattice’s root-manifest discovery find the#[AsLayout('auth')]-attributed class in this package’ssrc/on its own, without relying on the host app’sconfig('lattice.discover')paths. - The security building blocks for settings pages — three actions, one form, one fragment, one table — likewise discovered, not bound (see Security components).
Publish (optional)
Section titled “Publish (optional)”php artisan vendor:publish --tag=oidc-ui-configphp artisan vendor:publish --tag=oidc-ui-langoidc-ui-configwritesconfig/oidc-ui.php(brand_icon,logout_route— see Overriding views).oidc-ui-langwrites theoidc-ui::translation files (see Translations).
There is no oidc-ui-js (or any other frontend stub) tag — pages and components ship compiled
from this package’s own resources/js/ and arrive through Lattice’s plugin discovery, not
publishing.
Next steps
Section titled “Next steps”- Frontend setup — the
brand_iconsprite and the passkey components’ translation strings. - Overriding views — re-bind a single contract or the auth layout.
- Security components — compose 2FA/passkey/verification building blocks into your own settings page.