Installation
bambamboole/laravel-oidc-ui is a Lattice-powered auth UI for the
OIDC provider: login, registration, password reset, email verification, password confirmation,
two-factor challenge, and OAuth consent, rendered as Lattice pages instead of Blade views.
Requirements
Section titled “Requirements”- PHP
^8.4 bambamboole/laravel-oidc-server^0.7— the OIDC provider this UI renders views forlaravel/passport^13.4,laravel/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 eight auth view contracts the server package declares —
LoginView,RegisterView,PasswordResetRequestView,PasswordResetView,EmailVerificationView,PasswordConfirmationView,TwoFactorChallengeView, andConsentView(the OAuth consent page) — 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 — five 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.