Full-height loading screen shown while redirecting to an identity provider, with a spinner and a manual-continue fallback link. Perfect for SSO and OAuth handoff states.
A full-height centered card that shows a spinning Loader2 badge above an optional heading and description, plus an optional fallback prompt line ending in a manual-continue link, for use as the interstitial while an SSO or OAuth handoff redirects to an identity provider.
Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.
Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.
Radix flavor
npx shadcn add "https://ui.beste.co/r/auth44?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/auth44?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/auth44.tsx.
The installed file exports auth44Demo alongside the block: the exact props behind the preview above. Spread it to get a working redirect screen in one line.
import { Auth44, auth44Demo } from "@/components/beste/block/auth44";
export default function Page() {
return <Auth44 {...auth44Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Auth44 } from "@/components/beste/block/auth44";
export default function Page() {
return (
<Auth44
heading="Redirecting to Okta…"
description="Hold tight, we're taking you to your identity provider."
fallbackPrompt={{
text: "Not redirected automatically?",
linkLabel: "Continue manually",
href: "https://beste.co",
}}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
heading | string | – | Main title rendered as an <h1>; omitted entirely when falsy |
description | string | – | Supporting line under the heading; omitted entirely when falsy |
fallbackPrompt | { text: string; linkLabel: string; href: string } | – | Manual-continue line with trailing link; omitted entirely when falsy |
className | string | – | Extra classes merged onto the outer <section> |
type FallbackPrompt = {
text: string;
linkLabel: string;
href: string;
};Loader2 spinner badge is always rendered via animate-spin; it is decorative and has no loading state, prop, or completion callback tied to it.heading, description, and fallbackPrompt are only emitted when truthy, so passing none yields a card containing just the spinner.Link pointing at fallbackPrompt.href with no onClick or interception, so it performs a plain client navigation to whatever URL you supply.<section> fixes min-h-screen and vertically centers its content, so the block expects to own the full viewport height rather than sit inside a constrained container.useState; the component is fully controlled by its props and holds no state of its own.auth14
Full-height single sign-on screen with a work-email field, a continue-with-SSO button, and Google and Microsoft providers below a divider. Perfect for B2B and enterprise apps that authenticate via identity providers.
auth17
Full-height signed-out screen with a centered icon, a heading and message, a sign-back-in button, and a return-home link. Perfect for logout confirmations and expired-session pages.
auth46
Full-height step-up authentication screen that re-asks for the password before a sensitive action, showing the signed-in account and a cancel option. Perfect for protecting billing, security, and destructive actions.
auth21
Full-height passwordless sign-in screen with a fingerprint icon, a continue-with-passkey button, and a password fallback below a divider. Perfect for WebAuthn and biometric authentication flows.
auth6
Full-height passwordless sign-in screen with a single email field, a send-magic-link button, a helper note, and social login providers below a divider. Perfect for passwordless and email-link authentication flows.
auth23
Full-height lockout screen shown after too many failed attempts, with a live mm:ss countdown, a retry button that unlocks when the timer ends, and a reset-password link. Perfect for rate-limited sign-in protection.