Next.js Firebase Authentication for Edge and Node.js runtimes. Use Firebase Authentication with latest Next.js features.
Check out a working demo here: next-firebase-auth-edge-starter.vercel.app
You can find the source code for this demo at examples/next-typescript-starter
New to Firebase or Next.js? No worries! Follow this easy, step-by-step guide to set up Firebase Authentication in Next.js app using the next-firebase-auth-edge library:
https://hackernoon.com/using-firebase-authentication-with-the-latest-nextjs-features
The official documentation is available here: https://next-firebase-auth-edge-docs.vercel.app
The official firebase-admin
library depends heavily on Node.js’s internal crypto
library, which isn’t available in Next.js Edge Runtime.
This library solves that problem by handling the creation and verification of Custom ID Tokens using the Web Crypto API, which works in Edge runtimes.
next-firebase-auth-edge
supports all the latest Next.js features, like the App Router and Server Components.
To make adopting the newest Next.js features easier, this library works seamlessly with both getServerSideProps and legacy API Routes.
- Supports Next.js's latest features
- Zero bundle size
- Minimal setup: Unlike other libraries, you won’t need to create your own API routes or modify your
next.config.js
. Everything’s handled by middleware. - Secure: Uses jose for JWT validation, and signs user cookies with rotating keys to prevent cryptanalysis attacks.
Key updates in this release include:
- Custom token is now optional. To enable custom token support use enableCustomToken option
- Support ESM, Browser and Node.js imports for better tree-shaking features
- Support for Node.js 22
- Support for Next.js 15
- Support for React 19 RC
- New
experimental_enableTokenRefreshOnExpiredKidHeader
option inauthMiddleware
andgetTokens
, which refreshes user tokens when Google’s public certificates expire (instead of throwing an error)
To install, run one of the following:
With npm
npm install next-firebase-auth-edge
With yarn
yarn add next-firebase-auth-edge
With pnpm
pnpm add next-firebase-auth-edge