我试图在Node.js中为Firebase身份验证创建一个自定义令牌,但我得到了以下错误。
我使用的代码是:
admin.auth()
.createCustomToken(uid)
.then((customToken) =>
{
})
.catch((error) =>
{
});
错误信息:
IAM服务帐户凭据API以前未在项目中使用过,或者已禁用。通过访问https://console.developers.google.com/apis/api/iamcredentials.googleapis.com/overview启用它?然后重试。如果您最近启用了此API,请等待几分钟,以便操作传播到我们的系统,然后重试。请参阅https://firebase.google.com/docs/auth/admin/create-custom-tokens,了解如何使用此功能和排除此功能的更多详细信息。
我从Google Cloud控制台启用了IAM服务帐户凭据API,但几个小时后我仍然收到错误。我该怎么解决?
1条答案
按热度按时间hivapdat1#
这是修复!!!
如果运行Firebase Admin SDK的服务帐户没有iam.serviceAccounts.signBlob权限,您可能会收到如下错误消息:
对服务帐户项目/-/serviceAccounts/{your-service-account-id}执行此操作需要权限iam.serviceAccounts.signBlob。解决此问题的最简单方法是将“服务帐户令牌创建者”IAM角色授予相关服务帐户,通常为{project-name}@ appspot.gserviceaccount.com:
在Google Cloud Console中打开IAM和管理员页面。选择您的项目并单击“继续”。单击与要更新的服务帐户对应的编辑图标。点击“添加另一个角色”。在搜索过滤器中键入“Service Account Token Creator”,然后从结果中选择它。单击“保存”以确认角色授予。