next-firebase-auth-edge
Version:
Next.js Firebase Authentication for Edge and server runtimes. Compatible with latest Next.js features.
87 lines (56 loc) • 4.37 kB
Markdown
<picture>
<source media="(prefers-color-scheme: dark)" srcset="logo-white.svg">
<source media="(prefers-color-scheme: light)" srcset="logo.svg">
<img alt="next-firebase-auth-edge" src="logo.svg" width="320">
</picture>
---
Next.js Firebase Authentication for Edge and Node.js runtimes. Use Firebase Authentication with latest Next.js features.
[](https://badge.fury.io/js/next-firebase-auth-edge)
## Example
Check out a working demo here: [next-firebase-auth-edge-starter.vercel.app](https://next-firebase-auth-edge-starter.vercel.app/)
You can find the source code for this demo at [examples/next-typescript-starter](https://github.com/ensite-in/next-firebase-auth-edge/tree/main/examples/next-typescript-starter)
## Guide
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
## Docs
The official documentation is available here: https://next-firebase-auth-edge-docs.vercel.app
## Why?
The official `firebase-admin` library depends heavily on Node.js’s internal `crypto` library, which isn’t available in [Next.js Edge Runtime](https://nextjs.org/docs/api-reference/edge-runtime).
This library solves that problem by handling the creation and verification of [Custom ID Tokens](https://firebase.google.com/docs/auth/admin/verify-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](https://nextjs.org/docs/app) and [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components).
To make adopting the newest Next.js features easier, this library works seamlessly with both [getServerSideProps](https://nextjs.org/docs/pages/building-your-application/data-fetching/get-server-side-props) and legacy [API Routes](https://nextjs.org/docs/pages/building-your-application/routing/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](https://next-firebase-auth-edge-docs.vercel.app/docs/usage/middleware).
* **Secure**: Uses [jose](https://github.com/panva/jose) for JWT validation, and signs user cookies with rotating keys to prevent cryptanalysis attacks.
### What's New
Key updates in latest release include:
* New `enableTokenRefreshOnExpiredKidHeader` option in `authMiddleware`, which refreshes user tokens when Google’s public certificates expire (instead of throwing an error)
* Added `privatePaths` option to [redirectToLogin](https://next-firebase-auth-edge-docs.vercel.app/docs/usage/redirect-functions#redirecttologin) helper function
* Added [Metadata](https://next-firebase-auth-edge-docs.vercel.app/docs/usage/middleware#metadata) feature that allows to store custom data inside session cookies
* 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](https://github.com/awinogrodzki/next-firebase-auth-edge/tree/main/examples/next-typescript-starter#emulator-support) for details
* Custom token is now optional. To enable custom token support use [enableCustomToken](https://next-firebase-auth-edge-docs.vercel.app/docs/usage/middleware#custom-token) 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**
## Installation
To install, run one of the following:
With **npm**
```shell
npm install next-firebase-auth-edge
```
With **yarn**
```shell
yarn add next-firebase-auth-edge
```
With **pnpm**
```shell
pnpm add next-firebase-auth-edge
```
## [→ Read the docs](https://next-firebase-auth-edge-docs.vercel.app/)