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:
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.
Features
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.
Key Features:
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.
What's New
Key updates in latest release include:
Added removeServerCookies method to handle logout from inside Server Action
Added experimental_createAnonymousUserIfUserNotFound option to create anonymous user if no user was found
Full Firebase Emulator Support.
The library now fully supports the Firebase Emulator, enabling you to run your development app without needing to create a Firebase Project. Follow starter example README for details
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 23 and NPM 11
Support for Next.js 15
Support for React 19 RC
New experimental_enableTokenRefreshOnExpiredKidHeader option in authMiddleware and getTokens, which refreshes user tokens when Google’s public certificates expire (instead of throwing an error)