适用于Edge和Node.js运行时的Next.js Firebase身份验证。使用最新Next.js功能的Firebase身份验证。
示例
起步演示可在next-firebase-auth-edge-starter.vercel.app获取
您可以在examples/next-typescript-starter中找到演示的源代码
指南
如果您是Firebase或Next.js新手,可以按照这个全面的分步指南,使用next-firebase-auth-edge库将Firebase身份验证集成到Next.js中:
https://hackernoon.com/using-firebase-authentication-with-the-latest-nextjs-features
文档
官方库文档可在https://next-firebase-auth-edge-docs.vercel.app 查阅
原因
官方的firebase-admin
库严重依赖Node.js内部的crypto
库和原语,这些在Next.js Edge Runtime中是不可用的。
本库旨在解决使用Edge运行时中可用的Web Crypto API创建和验证自定义ID令牌的问题。
特性
next-firebase-auth-edge
与最新的Next.js功能兼容,如App Router或服务器组件
为了允许逐步采用最新的Next.js功能,next-firebase-auth-edge
可与getServerSideProps和旧版API路由互换使用
- 支持最新的Next.js功能
- 零捆绑大小
- 最小配置:与其他库相比,您无需定义自己的API路由或更新
next.config.js
文件。所有繁重的工作都由中间件完成。 - 安全:使用jose进行JWT验证。使用轮换密钥签名用户cookie,以减少密码分析攻击的风险
v1.6新特性
最显著的特性包括:
handleValidToken
和getToken
函数现在暴露customToken
,可与Firebase的signInWithCustomToken
方法一起使用,以通过Firebase客户端SDK进行身份验证- 在身份验证中间件中引入
enableMultipleCookies
选项。建议将此选项设置为true
以避免cookie大小问题。详见中间件文档 - 引入
getValidIdToken
和getValidCustomToken
辅助函数,以确保令牌在长时间运行的客户端会话中保持有效。详见客户端API文档 - 更新了几个高级方法
有关详细API更改说明,请参阅1.6.x canary发布
安装
使用npm
npm install next-firebase-auth-edge
使用yarn
yarn add next-firebase-auth-edge
使用pnpm
pnpm add next-firebase-auth-edge