import "keycloak-headless/provider"; import { KeycloakProvider, useAuth, useKeycloakConfigRoles, } from "keycloak-headless/react"; import { KEYCLOAK_CONFIG } from "./keycloak-config.generated.js"; import { realmRolesAttr } from "./realm-roles-attr.js"; function AuthDemo() { const { keycloak, authenticated, error } = useAuth(); const { hasRealmRole } = useKeycloakConfigRoles(KEYCLOAK_CONFIG); return (

kc-provider + React

{!keycloak && !error &&

Initializing Keycloak…

} {error != null && (

Init error (expected if Keycloak is not running):{" "} {String((error as Error)?.message ?? error)}

)} {keycloak && ( <>

Authenticated: {String(authenticated)}

Members-only: you are signed in (via{" "} kc-render-authenticated).

{" "} — via kc-account-link{" "} {" "} — via kc-logout-button

{hasRealmRole("admin") && (

Typed check: you have the admin realm role ( useKeycloakConfigRoles).

)}

You have the configured realm role (via{" "} kc-render-roles).

{" "} — login via kc-login-button inside{" "} kc-render-guest

)}
); } export function App() { return ( ); }