3

我正在尝试将我的自定义身份验证代码从firebase-queue工作人员移动到 firebase 功能。当我尝试调用该createCustomToken方法时出现以下错误。

下面是我用来创建自定义令牌的代码

const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
admin.auth().createCustomToken(uid, additionalClaims ? additionalClaims : {})

下面是 Firebase Functions 仪表板上的错误

Error: createCustomToken() requires a certificate with "private_key" set.
    at FirebaseAuthError.Error (native)
    at FirebaseAuthError.FirebaseError [as constructor] (/user_code/node_modules/firebase-admin/lib/utils/error.js:25:28)
    at new FirebaseAuthError (/user_code/node_modules/firebase-admin/lib/utils/error.js:90:23)
    at FirebaseTokenGenerator.createCustomToken (/user_code/node_modules/firebase-admin/lib/auth/token-generator.js:62:19)
    at Auth.createCustomToken (/user_code/node_modules/firebase-admin/lib/auth/auth.js:89:37)
    at Object.generate (/user_code/helpers/AuthTokenGenerator.js:7:37)
    at ref.child.child.once.then (/user_code/index.js:59:35)
    at process._tickDomainCallback (internal/process/next_tick.js:129:7)

类似的功能目前在firebase-queue工作人员实现中有效,但我按照文档中的建议使用服务帐户初始化应用程序。我猜问题出在initializeApp调用上,但这就是 Firebase Functions 文档中建议的方式。

4

1 回答 1

2

您的应用程序默认凭据不足以生成自定义令牌,您需要将服务帐户证书传递给initializeApp.

您可以在 Github 上的 LinkedIn 身份验证示例中看到这一点。

于 2017-03-22T18:01:04.130 回答