为了账号安全,请及时绑定邮箱和手机立即绑定

如何在nodejs中创建没有服务帐户json的Firebase身份验证自定义令牌?

如何在nodejs中创建没有服务帐户json的Firebase身份验证自定义令牌?

慕码人2483693 2021-06-30 18:19:29
我想在不使用服务帐户 json 的情况下创建自定义令牌。尝试了以下配置项:https : //firebase.google.com/docs/auth/admin/create-custom-tokens#using_a_service_account_idhttps://firebase.google.com/docs/auth/admin/create-custom-tokens#letting_the_admin_sdk_discover_a_service_account并使用以下代码生成令牌admin.auth().createCustomToken(uid)  .then(function(customToken) {    // Send token back to client  })  .catch(function(error) {    console.log('Error creating custom token:', error);  });得到以下错误:'未能确定服务帐户。确保使用服务帐户凭据初始化 SDK。或者,指定具有 iam.serviceAccounts.signBlob 权限的服务帐户。原始错误:错误:发出请求时出错:getaddrinfo ENOTFOUND 元数据元数据:80。错误代码:ENOTFOUND'使用最新的“firebase-admin”npm 模块。
查看完整描述

3 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

简短回答:您不能,sdk 密钥是对您的应用进行身份验证和授权以授予权限的唯一方法。

长(不是那么长)答案:使用云函数,如果它在你的项目中,它会为你初始化它,所以你不必使用密钥来实例化sdk


查看完整回答
反对 回复 2021-07-08
?
皈依舞

TA贡献1851条经验 获得超3个赞

您应该首先通过将您的服务帐户密钥(从 Firebase 下载)传递给凭据来初始化 admin。在调用 admin.auth() 之前使用此代码。


var serviceAccount = require('./ServiceAccountKey.json')


admin.initializeApp({

    credential: admin.credential.cert(serviceAccount)

});


查看完整回答
反对 回复 2021-07-08
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

如果您的代码未在 GCP 的托管运行时中运行,则您必须提供服务帐号 JSON 文件或至少提供serviceAccountId应用选项。


admin.initializeApp({

  serviceAccountId: 'my-client-id@my-project-id.iam.gserviceaccount.com',

});


查看完整回答
反对 回复 2021-07-08
  • 3 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信