OAuth Authorize App

Full-height OAuth consent screen showing the requesting app, the permissions it needs as a scope list, and authorize and cancel actions. Perfect for third-party app authorization and developer platform connect flows.

PRO

Auth19: OAuth Authorize App

Full-height OAuth consent screen: a centered app icon and heading over a bordered card that lists the requested permission scopes as a checkmarked list, followed by an authorize and a cancel action. Built for third-party app connect and developer platform authorization flows.

Upgrade to Pro

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.

Installation

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

bash
npx shadcn add "https://ui.beste.co/r/auth19?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/auth19?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/auth19.tsx and the button shadcn/ui primitive it's built on.

Quick start

The installed file exports auth19Demo alongside the block: the exact props behind the preview above. Spread it to get a working consent screen in one line.

tsx
import { Auth19, auth19Demo } from "@/components/beste/block/auth19";

export default function AuthorizePage() {
  return <Auth19 {...auth19Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Puzzle } from "lucide-react";
import { Auth19 } from "@/components/beste/block/auth19";

export default function AuthorizePage() {
  return (
    <Auth19
      icon={<Puzzle className="size-7" />}
      heading="Authorize Linear"
      description="Linear by Linear Orbit, Inc. wants to access your Beste account."
      scopes={[
        { title: "Read your profile", description: "Name, email, and profile picture." },
        { title: "Access your projects", description: "View and update issues in your workspace." },
      ]}
      authorizeButton={{ label: "Authorize", href: "/oauth/authorize" }}
      cancelButton={{ label: "Cancel", href: "/oauth/cancel" }}
      labels={{ scopesHeading: "This will allow Linear to:" }}
    />
  );
}

Props

PropTypeDefaultDescription
iconReact.ReactNodeIcon rendered in a muted square above the heading
headingstringScreen title, e.g. "Authorize [App]"
descriptionstringSubtext naming the requesting app
scopesScope[][]Permission list shown with checkmark bullets
authorizeButton{ label: string; href: string }Primary action; hidden entirely when not set
cancelButton{ label: string; href: string }Ghost action below the primary button; hidden entirely when not set
labelsobject{}Card heading and footer copy, see below
classNamestringExtra classes for the outer <section>
ts
type Scope = { title: string; description?: string };

type Auth19Labels = { scopesHeading?: string; footer?: string };

Behavior notes

More Auth blocks

View all Auth
PRO

auth27

Sign-In Error

Full-height authentication error screen with a warning icon, an explanation, an optional error code, and try-again, back, and contact-support actions. Perfect for failed sign-in and OAuth callback errors.

PRO

auth46

Confirm It's You

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.

PRO

auth16

Team Invitation Accept

Full-height invitation acceptance screen showing the inviter's avatar and team name, a pre-filled disabled email, and name and password fields to set up the account. Perfect for team onboarding and invite-link flows.

PRO

auth17

Signed Out Confirmation

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.

FREE

auth5

Set New Password

Full-height reset-password screen with new and confirm password fields (each with a show/hide toggle) and a live requirements checklist that ticks off rules as the user types. Perfect for the final step of a password reset or invite flow.

PRO

auth8

Welcome Back Unlock

Full-height re-authentication screen showing the signed-in user's avatar, name, and email with a single password field, a forgot-password link, and a use-a-different-account option. Perfect for session unlock and returning-user prompts.