Firebase令牌错误,"自定义令牌对应不同的受众群体."

10 ruby firebase

我正在尝试使用服务器上的Ruby为Firebase生成JWT令牌.在3.0之前,我们使用了令牌生成器,但升级后它停止了工作.我用下面的代码得到的令牌给出了一个错误:

自定义令牌对应于不同的受众.

我无法找到任何意义.

private_key = OpenSSL::PKey::RSA.new <<-PEM
-----BEGIN PRIVATE KEY-----
..redacted..
-----END PRIVATE KEY-----
PEM

service_account_email = 'redacted@redacted.iam.gserviceaccount.com'
now_seconds = Time.now.to_i

payload = {
  iss: service_account_email,
  sub: service_account_email,
  aud: 'https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit',
  iat: now_seconds,
  exp: now_seconds + (60 * 60),
  uid: self.id.to_s,
  debug: true,
  claims: {
    userId: self.id,
    slug: self.slug,
    username: self.username,
    avatar: self.profile.avatar.url,
    group: self.group,
    debug: true
  }
}

JWT.encode payload, private_key, 'RS256'
Run Code Online (Sandbox Code Playgroud)

谢谢

小智 6

我也收到此错误,是因为我使用了与Firebase项目无关的服务帐户。在firebase项目下使用新密钥创建新的服务帐户后,它开始工作。

要创建服务帐户,您可以按照以下说明进行操作:https : //firebase.google.com/docs/server/setup