Base IdP

Base IdP

Frameworks

Overview

Copy-paste Base IdP integration walkthroughs for every supported stack. Pick the one that matches your code.

Every framework guide on this site follows the same pattern: scaffold a starter with the CLI, walk through what was generated, explain the manual platform steps the CLI cannot do, and show how to wire it into a real project.

Pick the stack your code uses. If you have a frontend in one language and a backend in another, you will read two guides — one for each side. That is normal and is how every Base IdP integration works.

Mobile

For apps that ship to a user's device. These are public clients: client id only, no secret, ever.

Web

For apps that run in a browser, with or without a server.

Backend

For APIs and services that receive tokens.

Not sure which role applies

Read Client roles first. The role decides everything else — which guide you read, which SDK you install, which env you set.

In short:

Your codeRole
Runs in a browser tab and calls loginWithRedirect()Public frontend
Runs in a mobile app and calls BaseIdpFlutterAuth.login()Public frontend
Receives a token, verifies it, serves dataVerify-only
Handles /api/auth/callback and exchanges codesConfidential server

Same project can play more than one role. A Next.js fullstack app is public frontend (browser code) and confidential server (route handlers) at the same time. A Flutter app with a Go backend is public frontend (Flutter) and verify-only (Go) — two guides, two SDKs.

Where to go next

On this page