You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何限制Identity Toolkit API的访问权限?Next.js+Firebase场景

保护Firebase身份验证端点(signInWithEmailAndPassword)仅允许你的网站访问

Firebase的公共身份验证API端点本身默认开放,但你可以通过Firebase App Check实现仅允许你的合法网站调用该接口,以下是针对Next.js项目的具体配置步骤:

1. 启用Firebase App Check

  • 打开Firebase控制台,进入目标项目,找到App Check模块
  • 选择你需要保护的Web应用,点击启用按钮

2. 配置Web应用的验证提供者(reCAPTCHA v3)

针对Next.js这类网站,推荐使用无感知验证的reCAPTCHA v3:

  • 在App Check配置页,选择reCAPTCHA v3作为验证方式
  • 填入你的网站域名(如your-domain.com),获取reCAPTCHA的站点密钥和密钥
  • 将密钥填写到Firebase控制台对应配置项中并保存

3. 在Next.js项目中集成App Check

前端初始化配置

在你的Firebase初始化文件(如firebase.js/firebase.ts)中,添加App Check的初始化代码:

import { initializeApp } from "firebase/app";
import { getAuth } from "firebase/auth";
import { initializeAppCheck, ReCaptchaV3Provider } from "firebase/app-check";

const firebaseConfig = {
  // 你的Firebase项目配置信息
};

const app = initializeApp(firebaseConfig);
const auth = getAuth(app);

// 初始化App Check
const appCheck = initializeAppCheck(app, {
  provider: new ReCaptchaV3Provider('你的reCAPTCHA v3站点密钥'),
  isTokenAutoRefreshEnabled: true // 自动刷新验证令牌,维持有效性
});

export { auth, appCheck };

完成配置后,前端调用signInWithEmailAndPassword时,Firebase SDK会自动携带App Check验证令牌,Firebase后端会校验令牌合法性。

4. 强制身份验证API使用App Check验证

默认情况下App Check不会强制所有身份验证请求验证,需要手动开启:

  • 进入Firebase控制台的身份验证模块,切换到设置标签页
  • 滚动到App Check区域,勾选要求使用App Check验证所有身份验证请求
  • 保存设置

额外注意事项

  • 本地开发处理:若在localhost环境调试,需将localhost添加到reCAPTCHA允许域名列表,或使用Firebase控制台生成的测试令牌临时绕过验证
  • 错误处理:集成后,非法请求会返回403 Forbidden,前端可捕获该错误并给用户对应提示
  • 扩展保护:App Check同样可用于保护Firestore、Storage等其他Firebase服务,配置逻辑类似

内容的提问来源于stack exchange,提问作者Or Nakash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 12:30:41