Node.js中Firebase Admin SDK生成密码重置链接遇权限不足错误
Firebase Admin SDK 调用generatePasswordResetLink出现权限不足错误
我正在开发应用的密码恢复模块,原本调用sendPasswordResetEmail函数可以正常运行,但因为需要使用自定义邮件模板,改用Firebase Admin SDK的admin.auth().generatePasswordResetLink(email)生成链接,用来提取OobCode给resetPassword函数使用。但调用这个方法时出现了以下错误:
errorInfo: {
code: 'auth/insufficient-permission',
message: 'Credential implementation provided to initializeApp() via the "credential" property has insufficient permission to access the requested resource.'
},
codePrefix: 'auth'
我觉得Firebase权限设置没问题,但我是Firebase新手。以下是相关代码:
Admin SDK初始化代码
import config from "config" const serviceAccount = config.get('serviceAccount') import admin from "firebase-admin"; const dbUrl = "" try { admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: dbUrl }); } catch (e) { console.log(e) } export {admin}
Firebase客户端初始化代码
import { admin } from './firebase/firAdmin.js'; import {getAuth} from "firebase/auth"; import {initializeApp} from 'firebase/app'; const { FIR_APP_ID, FIR_API_KEY, FIR_PROJECT_ID, FIR_DATBASE_URL, FIR_AUTH_DOMAIN, FIR_STORAGE_BUCKET, FIR_MESSAGING_SENDER_ID } = process.env const firConfig = { appId: FIR_APP_ID, apiKey: FIR_API_KEY, authDomain: FIR_AUTH_DOMAIN, databaseURL: FIR_DATBASE_URL, projectId: FIR_PROJECT_ID, storageBucket: FIR_STORAGE_BUCKET, messagingSenderId: FIR_MESSAGING_SENDER_ID } const firApp = initializeApp(firConfig)
密码恢复接口代码
app.post('/password-recovery', async(req, res) => { const {email} = req.body; admin.auth().generatePasswordResetLink(email).then((link) => { console.log(link) }) .catch((err) => { console.log(err) });
解决方法
- 检查服务账号角色:确保你下载的服务账号文件对应的账号,拥有Firebase Auth管理员或项目编辑器权限。在Firebase控制台的「项目设置 > 服务账号」里,找到该账号,查看并修改其角色。
- 验证服务账号文件完整性:确认
serviceAccount里的client_email、private_key等核心字段没有缺失或复制错误,比如private_key的换行符是否保留正确。 - 检查初始化参数:虽然
databaseURL可以留空,但确保admin.initializeApp的配置中,credential确实是通过admin.credential.cert()加载的合法服务账号文件,而非客户端API密钥。 - 确认项目权限配置:在Firebase控制台的「Authentication > 设置」里,确保密码重置功能处于启用状态,且没有额外的权限限制。
内容的提问来源于stack exchange,提问作者Bátorfalvi Géza
相关产品推荐
相关产品推荐

