Skip to main content

Next.js SDK

The ThunderID Next.js SDK (@thunderid/nextjs) provides server-side authentication, middleware-based route protection, and pre-built UI components for Next.js applications using the App Router.

Installation

Install the ThunderID Next.js SDK using your preferred package manager:

npm install @thunderid/nextjs

Getting Started

To get started quickly, check out our Next.js Quickstart Guide for step-by-step instructions.

Architecture

The Next.js SDK uses a server-first approach:

  • Authentication tokens are stored in HttpOnly cookies, preventing client-side access
  • Token refresh happens automatically in middleware before requests reach your pages
  • Server Actions handle sign-in, sign-out, and user operations without exposing tokens
  • Pre-built components from @thunderid/react are available for client-side UI

Features

Server Exports

  • <ThunderIDProvider /> — Server-side provider that wraps your app layout
  • Server Actions — Authentication, session, and user management actions
  • thunderid() — Direct access to the server-side client for token and session operations

Middleware (@thunderid/nextjs/middleware)

Client Components (@thunderid/nextjs)

Action Components

  • <SignInButton /> — Trigger sign-in flow
  • <SignOutButton /> — Sign out the current user
  • <SignUpButton /> — Trigger sign-up flow

Control Components

  • <SignedIn /> — Conditionally render content for authenticated users
  • <SignedOut /> — Conditionally render content for unauthenticated users

User Self-Care Components

  • <UserDropdown /> — User menu with profile and settings
  • <UserProfile /> — Complete user profile management interface
  • <User /> — Display user information

Organization Components (B2B)

  • <CreateOrganization /> — Create new organizations
  • <OrganizationProfile /> — Manage organization settings
  • <OrganizationSwitcher /> — Switch between organizations
  • <OrganizationList /> — List user's organizations

Hooks

  • useThunderID() — Access authentication state and methods from client components

Environment Variables

VariableRequiredDescription
NEXT_PUBLIC_THUNDERID_BASE_URLYesYour ThunderID instance URL
NEXT_PUBLIC_THUNDERID_CLIENT_IDYesThe Client ID from your application
THUNDERID_CLIENT_SECRETYesThe Client Secret (server-side only)
THUNDERID_SECRETProductionSecret for signing session cookies (at least 32 characters)
THUNDERID_SESSION_COOKIE_EXPIRY_TIMENoCookie lifetime in seconds (default: 86400)
ThunderID LogoThunderID Logo

Product

DocsAPIsSDKs
© WSO2 LLC. All rights reserved.Privacy PolicyCookie Policy